我有两个CPT作为“连衣裙”和“休闲”,我想在菜单中的“仪表板”之后准确地将它们放在一起.
我的自定义帖子类型中包含以下代码:
'menu_position' => 2
结果如何显示为:
“连衣裙”之后的“邮政”职位!能不能让我知道为什么会发生这种情况以及如何在“发布”之前将所有CPT保持在彼此之后.(我有5个自定义帖子类型)
谢谢
最佳答案 如果Wordpress已经在您声明的menu_position中有一个菜单项,那么它将被移动到下一个空闲位置.您的问题是仪表板位于位置2,然后分隔符位于位置4,因此第二个帖子类型将移动到下一个自由位置,即6(帖子位于位置5).
请注意,菜单项按其注册顺序添加,因此如果它们具有相同的menu_position,则首先注册的帖子类型将显示在菜单顶部附近.
但是,如果您愿意,可以移动默认的WP菜单项,从而实现所需的显示.
如果您为自定义的帖子类型指定menu_position为6和7,则可以添加此项以将分隔符移动到位置8并将帖子移动到位置9 –
add_action('admin_head', 'my_edit_admin_menu');
function my_edit_admin_menu(){
global $menu;
$menu[8] = $menu[4]; // Copy 'separator1' to a new menu location
unset($menu[4]); // Unset separator1 (from original position)
$menu[9] = $menu[5]; // Copy 'Posts' to a new menu location
unset($menu[5]); // Unset Posts (from original position)
ksort($menu); // Sort the menu
}
注 – 在注册自定义帖子类型(使用init操作)后调用操作admin_head.因此,您必须确保给定的menu_position值与默认菜单项的值相冲突.如果发生冲突,WP会在您有机会重新排序默认项目之前移动它们.
有关当前WP默认菜单位置的信息,请参阅Function Reference for register_post_type()
的Arguments部分中的menu_position文档(尽管我认为它目前已经过时了3.8版).如果您不确定菜单的组织方式,请将其添加到上面的代码中以输出管理区域中的完整菜单 –
echo '<pre>WP Admin Menu: '; print_r($menu); echo '</pre>';
仅供参考 – 我注意到您使用图像作为自定义帖子类型的图标.从WP 3.8开始,这些已从默认管理仪表板中删除,转而使用DashIcons.
要使你的帖子类型看起来像其余的一样漂亮,只需使用menu_icon参数,picking any of the icons from this page.要获得相关名称,请单击一个,然后查看页面顶部;例如,第一个图标称为dashicons-menu.