WordPressの管理画面の左サイドに”ダッシュボード”、”投稿”、”設定”などのトップレベルメニューが表示されますが、ここにプラグイン設定メニューを追加する方法をまとめました。
下記サイトを参考にしました。
Ten Things Every WordPress Plugin Developer Should Know
下記アクションと関数を使って実施します。
・アクション:”admin_menu”アクション
・WordPress関数:”add_menu_page”関数
・WordPress関数:”add_submenu_page”関数
①”admin_menu”アクションについて
管理画面メニューの基本構造が配置された後に実行します。
②”add_menu_page”関数
・トップレベルメニューページを追加します。
○構文
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position )
$page_title:メニューページのタイトル。
$menu_title:メニュー名。
$capability:メニューの権限。
$menu_slug:メニューのスラッグ。
$function:メニューページのコールバック関数
$icon_url:メニュー横に表示されるアイコンファイルのURL(省略時は”)。
$position:メニューの追加位置(省略時はNULL)。
③”add_submenu_page”関数
・サブメニューページを追加します。
○構文
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
$parent_slug:親メニューのスラッグ。
$page_title:サブメニューページのタイトル。
$menu_title:プルダウンに表示されるメニュー名。
$capability:サブメニューの権限。
$menu_slug:サブメニューのスラッグ。
$function:サブメニューページのコールバック関数。
●サンプルコード
トップレベルメニューに”My Plugin”、サブメニューに”設定”、”ヘルプ”を持つメニューを追加する例です。
add_action('admin_menu', 'myplugin_menu_pages'); function myplugin_menu_pages() { $page_title = 'My Pluginの設定'; $menu_title = 'My Plugin'; $capability = 'manage_options'; $menu_slug = 'myplugin-settings'; $function = 'myplugin_settings'; add_menu_page($page_title, $menu_title, $capability, $menu_slug, $function); $sub_menu_title = '設定'; add_submenu_page($menu_slug, $page_title, $sub_menu_title, $capability, $menu_slug, $function); $submenu_page_title = 'My Plugin ヘルプ'; $submenu_title = 'ヘルプ'; $submenu_slug = 'myplugin-help'; $submenu_function = 'myplugin_help'; add_submenu_page($menu_slug, $submenu_page_title, $submenu_title, $capability, $submenu_slug, $submenu_function); } function myplugin_settings() { if (!current_user_can('manage_options')) { wp_die('このページへアクセスする権限がありません。'); } } function myplugin_help() { if (!current_user_can('manage_options')) { wp_die('このページへアクセスする権限がありません。'); } }