add_object_page()
は、WordPress の管理画面に新しいメニュー項目を追加するための関数です。
この関数を使用すると、特定のカスタム投稿タイプや設定ページを管理画面の上位レベルに配置できます。
主にプラグインやテーマの設定ページを追加する際に役立ちます。現在は非推奨となっており、新しい開発では add_menu_page()
を使用するのが推奨されています。
機能の説明
add_object_page()
は、WordPress の管理画面のメニューにオブジェクト(カスタム投稿タイプや設定ページなど)を追加するために用いられる関数です。この関数を利用することで、一般的な「設定」メニューの下に追加するのではなく、独立したメニューとして表示できます。
主な用途
- プラグインの設定ページを追加
- カスタム投稿タイプの管理ページを作成
- 管理者専用のツールページを設置
シンプルなコード例
add_object_page('カスタム設定', 'カスタム設定', 'manage_options', 'custom-settings', 'custom_settings_page');
'カスタム設定'
:メニューのタイトル'カスタム設定'
:管理画面に表示されるメニュー名'manage_options'
:アクセス権限(管理者のみ)'custom-settings'
:メニューのスラッグ(識別用)'custom_settings_page'
:設定ページを表示するコールバック関数
このコードを使うと、管理画面の左側に「カスタム設定」という新しいメニューが追加されます。
使い方の説明
より詳細な設定をしたい場合、以下のような実装が可能です。
function custom_settings_page() {
echo '<h1>カスタム設定ページ</h1>';
echo '<p>ここに設定項目を追加できます。</p>';
}
add_action('admin_menu', function() {
add_object_page(
'カスタム設定', // ページタイトル
'カスタム設定', // メニュータイトル
'manage_options', // 権限
'custom-settings', // メニューのスラッグ
'custom_settings_page', // コールバック関数
'dashicons-admin-generic' // アイコン
);
});
このコードでは、メニューにアイコン(dashicons-admin-generic
)を設定して、より分かりやすく管理画面に表示しています。
一緒に使うことが多い関連タグ
add_menu_page()
(推奨)
add_object_page()
は非推奨になったため、現在は add_menu_page()
の使用が推奨されています。
add_menu_page(
'カスタム設定',
'カスタム設定',
'manage_options',
'custom-settings',
'custom_settings_page',
'dashicons-admin-generic',
25 // メニューの表示順
);
add_submenu_page()
既存のメニューの下にサブメニューを追加する場合は、add_submenu_page()
を使用します。
add_submenu_page(
'custom-settings',
'サブ設定',
'サブ設定',
'manage_options',
'custom-sub-settings',
'custom_sub_settings_page'
);
追加情報で取得したい場合
get_admin_page_title()
現在の管理ページのタイトルを取得できます。
echo get_admin_page_title();
get_current_screen()
現在表示されている管理画面の情報を取得する場合に使用します。
$current_screen = get_current_screen();
echo $current_screen->id;
想定されるトラブル
メニューが表示されない
管理者権限 (manage_options
) を持つユーザーでないと、メニューが表示されません。
解決方法
適切な権限 (edit_posts
など) に変更するか、管理者でログインしてください。
Q&A
まとめ
add_object_page()
は、管理画面に新しいメニューを追加するための関数ですが、現在は非推奨です。
そのため、新しい開発では add_menu_page()
を使用することが推奨されます。メニューを追加する際は、適切な権限を設定し、dashicons
でアイコンを指定すると見やすくなります。
コメント