概要
add_posts_page
関数は、WordPressの管理画面の「投稿」メニューにサブメニューを登録するために使用されます。この関数を活用することで、カスタム設定画面や特定の機能を持つページを簡単に追加できます。よく使われる機能には以下のようなものがあります。
- カスタム投稿タイプの設定ページ
- 投稿のインポート・エクスポート機能
- 投稿の分析ツール
- ショートコードの管理
- 投稿のカスタムフィールド管理
- サードパーティプラグインの設定ページ
- 投稿のテーマ管理
- 投稿のコメント設定
構文
add_posts_page( $page_title, $menu_title, $capability, $menu_slug, $function );
パラメータ
$page_title
(string) – サブメニュー項目のページタイトル$menu_title
(string) – 管理メニューに表示される項目タイトル$capability
(string) – このメニューを表示するための権限$menu_slug
(string) – メニューのスラッグ$function
(callable) – メニューのページが表示されたときに呼ばれる関数
戻り値
- なし(この関数は何も返しませんが、WordPressの管理メニューにサブメニューを追加します。)
関連する関数
使用可能なバージョン
- この関数はバージョン 2.7 から使用可能です。
コアファイルのパス
/wp-admin/includes/plugin.php
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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 |
サンプルコード
サンプル1: 簡単なサブメニューページを追加する
function my_custom_post_page() {
add_posts_page( 'My Custom Page', 'My Custom', 'manage_options', 'my-custom-page', 'my_custom_page_callback' );
}
function my_custom_page_callback() {
echo '<h1>My Custom Post Page</h1>';
}
add_action( 'admin_menu', 'my_custom_post_page' );
このコードは、「投稿」メニューに「My Custom」というサブメニューを追加し、そのページが表示されたときに「My Custom Post Page」というタイトルを表示します。
サンプル2: 投稿設定ページの作成
function add_my_post_settings() {
add_posts_page( 'Post Settings', 'Post Settings', 'manage_options', 'post-settings', 'post_settings_callback' );
}
function post_settings_callback() {
echo '<h1>Post Settings</h1>';
// 設定フォームなどのコード
}
add_action( 'admin_menu', 'add_my_post_settings' );
この例では、投稿の設定ページを追加し、その中に設定フォームを追加するためのコールバック関数を設定しています。
サンプル3: 投稿のインポート機能を追加
function my_import_post_page() {
add_posts_page( 'Import Posts', 'Import Posts', 'manage_options', 'import-posts', 'import_posts_callback' );
}
function import_posts_callback() {
echo '<h1>Import Posts</h1>';
// インポート機能のコード
}
add_action( 'admin_menu', 'my_import_post_page' );
このコードによって、「投稿」メニューに「Import Posts」というサブメニューが追加され、インポート機能を実装するためのコールバック関数が指定されています。
サンプル4: 投稿のカスタムフィールド管理ページを作成
function my_custom_fields_page() {
add_posts_page( 'Custom Fields', 'Custom Fields', 'manage_options', 'custom-fields', 'custom_fields_callback' );
}
function custom_fields_callback() {
echo '<h1>Manage Custom Fields</h1>';
// カスタムフィールドの管理コード
}
add_action( 'admin_menu', 'my_custom_fields_page' );
このサンプルでは、投稿のカスタムフィールドを管理するためのページを作成します。
サンプル5: 投稿のショートコード管理ページの追加
function my_shortcode_manager_page() {
add_posts_page( 'Shortcodes', 'Shortcodes', 'manage_options', 'shortcodes', 'shortcode_manager_callback' );
}
function shortcode_manager_callback() {
echo '<h1>Shortcode Manager</h1>';
// ショートコード管理機能のコード
}
add_action( 'admin_menu', 'my_shortcode_manager_page' );
このコードは、「投稿」メニューに「Shortcodes」というサブメニューを追加して、ショートコードを管理するための機能を実装します。