問題描述
我目前正在開發一個使用兩個自定義帖子型別的 wordpress 外掛。我想知道這裡:是否可以新增自定義帖子型別選單作為另一個自定義帖子型別的子選單?
最佳解決方案
是。當您註冊您的帖子型別時,您需要將 show_in_menu 設定為您希望顯示的頁面。
新增自定義帖子型別作為帖子的 sub-menu
在這裡我們將”movies” 的帖子型別設定為在帖子中包含在 sub-menu 中。
register_post_type( 'movies',
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'has_archive' => true,
'show_in_menu' => 'edit.php'
)
);
如果您已將分類標準註冊到自定義帖子型別,那麼它也需要新增到頁面中。
在 add_submenu_page()中,第一個引數是分配給它的頁面,最後一個是選單段。
add_action('admin_menu', 'my_admin_menu');
function my_admin_menu() {
add_submenu_page('edit.php', 'Genre', 'Genre', 'manage_options', 'edit-tags.php?taxonomy=genre');
}
將自定義帖子型別新增為另一個自定義帖子型別的 sub-menu
要將頁面新增到另一個自定義帖子型別,包括帖子型別的查詢字串引數以及頁面名稱。
要新增 CPT 電影及其分類法型別下的帖子型別娛樂調整這樣的程式碼。
edit.php 成為 edit.php?post_type=entertainment
edit-tags.php 成為 edit-tags.php?taxonomy=genre&post_type=entertainment
register_post_type( 'movies',
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'has_archive' => true,
'show_in_menu' => 'edit.php?post_type=entertainment'
)
);
add_action('admin_menu', 'my_admin_menu');
function my_admin_menu() {
add_submenu_page('edit.php?post_type=entertainment', 'Genre', 'Genre', 'manage_options', 'edit-tags.php?taxonomy=genre&post_type=entertainment');
}
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。