将自定义帖子类型添加为自定义页面的顶级菜单项

时间:2018-07-30 作者:Courtney

我正在编写一个插件,并添加了一个自定义帖子类型

register_post_type( \'my_cpt\', $args);

我想将其链接到我使用创建的自定义管理菜单

add_menu_page( \'Page Title\', \'Menu Item\', \'manage_options\', \'myplugin_page\', \'mycallback\', \'some_icon\', 10);

我基本上希望上面的顶级管理菜单显示包含此CPT所有帖子的视图,并可以选择在下面添加新帖子。我可以使用

add_menu_page( \'Page Title\', \'Menu Item\', \'manage_options\', \'edit.php?post_type=my_cpt\', \'mycallback\', \'some_icon\', 10);

这允许CPT位于顶层菜单上,但只有添加新帖子才有正确的视图。CPT列表不在主菜单项页面上。

而且,所有子页面都消失了,因为顶级菜单项的slug消失了。

我怎样才能完成我想做的事情?顶级管理页面应为edit.php?post_type=my_cpt, 在它下面,我希望第一个子菜单指向post-new.php?post_type=my_cpt 然后其他子菜单我可以用它们做我想做的事。

我见过其他人将CPT添加到子菜单。如何添加到顶层菜单?

1 个回复
SO网友:Jacob Peattie

您不需要自己添加管理菜单,注册帖子类型时只需确保设置public 参数到true. 如果帖子类型不是公共的,那么请确保至少show_ui 是真的。然后将为您创建菜单。

register_post_type( \'my_cpt\', array(
    \'public\'  => true,
    \'show_ui\' => true,
) );
参见the documentation 用于确定其在菜单中显示的位置以及使用的图标的参数。

结束

相关推荐