WordPressプラグイン開発日誌 第1回(2025/10/02)

用語集プラグインの開発

当サイトの「記録抄」は用語集のようなコンテンツなのだが、現在はカスタム投稿タイプとテーマのカスタマイズの組み合わせで表示している。
これをテーマに依存しない、単独のプラグインに変更したいと思っている。せっかくなのでプラグイン化の作業記録も残していこうかと。初歩的なところから進めていくつもり。

プラグインヘッダーファイルの作成

まずはこちらを参考に、用語集プラグイン(仮称BK Simple Glossary)のプラグインヘッダーを作成した。

管理メニューの追加

こういうのはまずは見た目から、ということでトップレベルメニューサブメニューを追加する。利用する関数はadd_menu_page()add_submenu_page()だ。

用語集を登録する「新規追加」と、登録した用語集の編集・削除を行える「編集」のメニューを用意した。

サブメニューを追加した場合、サブメニューの1個目はadd_menu_page()で追加した親メニュー名になってしまう。このため最初のadd_submenu_page()で、サブメニューの1個目のメニュー名を上書きしている。参考にしたのはこちら。

クラス化

後々のことを考えてクラス化しておく。classesディレクトリを作成し、その中にadmin-menu.phpを作成する。

とりあえずさっきのコードをクラス化。

プラグイン本体側。Akismetのソースを参考に、バージョンとプラグインディレクトリは定数で定義しておく。

最初、下記のように$menuに突っ込んでたらエラーになった。グローバル変数で$menuがあるようで上書きしてしまっていたようだ。

ここまでのコードをAIに見せたら、初期化関数を用意してグローバル変数を汚染するリスクを減らした方が良いよ、と言われたのでそのようにした。インスタンスの変数名も変更。

次回

add.phpとedit.phpの中身と登録処理かなぁ。

Comments

No comments yet. Why don’t you start the discussion?

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です