概要
add_pages_page
関数は、固定ページメニューにサブメニューを登録するために使用されます。この関数を使用すると、特定の固定ページに関連付けられた設定やオプションを管理するためのサブメニューを追加できます。主に以下のような機能を実装する際に使われます。
- 管理画面にカスタム設定ページを追加する
- プラグインの設定管理画面を提供する
- 特定のコンテンツを管理するためのインターフェースを作成する
- ユーザーのためのカスタムダッシュボードを構築する
- カスタム投稿タイプに関する追加設定を提供する
- カスタムメタボックスの設定ページを追加する
- プラグインやテーマのオプションをまとめて管理する
- データのインポートやエクスポートを簡単にするためのインターフェースを作成する
構文
add_pages_page( $page_title, $menu_title, $capability, $menu_slug, $function );
パラメータ
$page_title
(string): サブメニューのタイトル。$menu_title
(string): 管理画面メニューに表示されるタイトル。$capability
(string): メニューを表示するために必要な権限。$menu_slug
(string): サブメニューのスラッグ(URLの一部)。$function
(callable): サブメニューがクリックされたときに実行される関数。
戻り値
この関数は、成功した場合にはメニューのスラッグを返します。失敗した場合には false
を返します。
関連する関数
使用可能なバージョン
add_pages_page
関数は、WordPress 2.7以降で使用可能です。
コアファイルのパス
この関数は、wp-admin/includes/plugin.php
に含まれています。
サンプルコード
サンプルコード1: 簡単な設定ページの追加
add_action('admin_menu', 'my_custom_menu');
function my_custom_menu() {
add_pages_page('My Custom Page', 'Custom Settings', 'manage_options', 'custom-settings', 'custom_settings_page');
}
function custom_settings_page() {
echo '<h1>カスタム設定ページ</h1>';
}
このサンプルは、管理メニューに「カスタム設定」というサブメニューを追加し、そのサブメニューをクリックすると「カスタム設定ページ」というタイトルが表示される簡単な機能を実装しています。
サンプルコード2: プラグイン用の設定ページ
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
add_pages_page('My Plugin Settings', 'Plugin Settings', 'manage_options', 'my-plugin-settings', 'plugin_settings_page');
}
function plugin_settings_page() {
echo '<h1>プラグイン設定</h1>';
}
このサンプルでは、プラグインのための設定ページをユーザーがアクセスできるようにしています。
サンプルコード3: ユーザーごとの設定ページ追加
add_action('admin_menu', 'user_specific_settings_menu');
function user_specific_settings_menu() {
if(current_user_can('administrator')) {
add_pages_page('Admin Settings', 'Admin Only', 'manage_options', 'admin-settings', 'admin_settings_page');
}
}
function admin_settings_page() {
echo '<h1>管理者専用設定</h1>';
}
この例では、管理者のみがアクセスできる特定の設定ページを追加しています。
サンプルコード4: サブページにフォームを表示
add_action('admin_menu', 'form_sample_menu');
function form_sample_menu() {
add_pages_page('Form Sample', 'Sample Form', 'manage_options', 'form-sample', 'form_sample_page');
}
function form_sample_page() {
if ($_POST) {
echo '<h1>フォームが送信されました。</h1>';
} else {
echo '<h1>サンプルフォーム</h1><form method="post"><input type="submit" value="送信"></form>';
}
}
このサンプルは、フォームを持つ設定ページを実装しており、フォームが送信されるとメッセージが表示されます。
サンプルコード5: 設定セクションの追加
add_action('admin_menu', 'settings_section_menu');
function settings_section_menu() {
add_pages_page('Settings Section', 'Settings', 'manage_options', 'settings-section', 'settings_section_page');
}
function settings_section_page() {
echo '<h1>設定セクション</h1>';
echo '<p>ここで設定を変更できます。</p>';
}
この例では、設定セクションのページを管理メニューに追加し、ユーザーに設定の変更を促すメッセージを表示します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
この関数は特定のバージョンで非推奨または削除されていません。