WordPressで管理画面にメニューを追加してみる

この記事はだいぶ前に書かれたものなので情報が古いかもしれません
こちらメニューになります

この記事を三行にまとめると

左側のメニューに項目を一つ追加してみたいと思います
functions.phpにほんの数行記述するだけで良い
ページは好きにカスタマイズ可能です
Wordpressの管理画面をカスタマイズしたい時、多くの場合は何らかのプラグインに頼ると思うのですが、ちょっとしたページを追加したいだけならプラグインを使わなくても作業はそんなに大変じゃありません。

今回は左側のメニューに項目を一つ追加して、それで自分の作成したページを開けるようにしてみたいと思います。あまり複雑なことはやらずに、なるべくシンプルに追加してみましょう。



メニューを追加する

メニューの追加は簡単です。functions.phpにほんの数行記述するだけで良い。

add_action('admin_menu', 'additional_menu_page');

function additional_menu_page() {
  add_menu_page('追加メニュー', '追加メニュー', 'manage_options', 'additional_page', 'page_html');
}

function page_html() {
  //ページの表示内容を記述する
}

まず「admin_menu」というアクションフックで「additional_menu_page」という関数を呼び出しています。関数名は別に何でも良いです。

additional_menu_pageの中で「add_menu_page」という関数を使っていますが、これがメニューを追加する関数です。

add_menu_page関数は第一引数がページのタイトル、第二引数がメニュー名となっています。ページタイトルというのはtitleタグの中身ですね。メニュー名は左側のメニューに表示する名称です。三番目はメニュー表示に必要な権限です。今回はとりあえずmanage_optionとしていますが、必要に応じて適切な権限を設定してください。正直、細かい権限についてはあまりよく分かってないもんで、権限の種類についてはこちらを参照してください。

ユーザーの種類と権限

それから第四引数はメニューのスラッグになります。ページを表示する時のURLに関わってくる部分です。既存のスラッグ名とかぶったりしなければここは好きな名前をつけて大丈夫です。

第五引数はページを表示内容を呼び出すための関数です。今回は「page_html」とかいう適当な名前にしてますが、これも好きな名前をつけて良いです。

実際にfunctions.phpに記述すると、こんな感じでメニューが追加されます。

追加メニューページ

左側に「追加メニュー」という項目が増えていますね。画質を落としたのでちょっとぼやけて見づらいかもしれませんが、ページにアクセスするとURLのパラメータが「page=additional_page」と、引数で指定下通りのスラッグになっているのが分かりますね。これで追加メニューページを追加することができました。

ちなみに第六引数でメニューのアイコンも指定できます。デフォルトだとギアのアイコンになるみたいです。

add_menu_page関数の詳しい説明についてはこちらをどーぞ。

add_menu_page



ページの内容を表示

先ほどはページを開いても何も表示されていませんでした。ここに何かを表示するには、上のコードで作ったpage_html関数の中をいじります。

function page_html() {
  echo '<p>ここに表示内容を記述します。</p>';
}

表示したい内容をechoなりprintで出力すればオーケーです。

echoしてみました

今はシンプルに一行だけの文章を表示しましたが、もちろんデータベースから必要な情報を取ってきて表示させるのも自由だし、フォームを埋め込むのも自由です。頭を空っぽにすればいくらでも夢詰め込めます。

ただ、フォームを埋め込んだりしてがっつりHTMLを書くような場合は別ファイルを作ってincludeなり何なりするのが良いかもです。関数の中に全部書こうとするとコードが読みづらくなると思うので。インデントも取りづらいしね。

//functions.php
function page_html() {
  include 'additional_page.php';
}

//additional_page.php
<div>
  ここは追加メニューのページです。<br />
  すべてはあなたしだい ALL UP TO YOU
</div>

〜 以下略 〜

あなたは動画を埋め込んでも良いし埋め込まなくても良い

themesフォルダの中にadditional_page.phpというファイルを作ってフォームやYouTubeの動画を埋め込んでみました。こんな感じでページは好きにカスタマイズ可能です。






複雑な機能を持ったページを作成するならプラグインを探した方が手軽で早いと思いますが、「ちょっとした機能を追加したい、でも良いプラグインが見つからない」みたいな時は、こんな風にページを自作してしまっても良いと思います。
 もしかしたら何か関連しているかも? 
 みんなからのコメント 
2020年05月15日 02:11:34
篠原
大変勉強になりました。良い記事をありがとう!
2020年05月15日 02:32:30
まっち~(管理人)
いえいえ、こちらこそありがとうございます^^