問題描述
我目前正在開發一個使用兩個自定義帖子類型的 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。