WordPress | 在管理员的自定义菜单下添加自定义帖子菜单

Kod*_*.Me 3 wordpress custom-post-type

我正在尝试创建一个插件,其中包含仪表板页面、配置页面、一些额外的配置页面和一些自定义帖子类型。

更具体地说,在管理员中,我喜欢通过功能add_menu_pageadd_submenu_page在菜单中添加一些页面,以及我喜欢创建一些与插件相关的自定义帖子类型。

问题是,如何在插件菜单选项下对自定义帖子类型菜单进行分组。

在例子中,可以说我创造了菜单选项“为myplugin”与功能add_menu_page,然后在下面这个菜单我添加页面“设置页面”,“做的东西页”,“仪表板”通过功能add_submenu_page,然后创建自定义帖子类型“汽车”。如何将“汽车”菜单放在 MyPlugin 菜单选项下?

我喜欢这样的最终结果:

Dashboard
    Home
    ...
Posts
    All Posts
    ...
Settings
    General
    ...
    ...
MyPlugin             <- How to add this menu structure ?
    Dashboard        <- How to add this menu structure ?
    Cars             <- How to add this menu structure ?
    Settings Page    <- How to add this menu structure ?
    Do stuff page    <- How to add this menu structure ?
Run Code Online (Sandbox Code Playgroud)

实际的问题不是如何创建菜单结构,而是如何在 MyPlugin 菜单下添加“汽车”自定义帖子类型菜单。

注意我在“register_post_type”属性中尝试了以下选项但没有运气

'show_in_menu'          =>  'admin.php?page=myplugin.php'
Run Code Online (Sandbox Code Playgroud)

这有可能实现吗?

小智 5

我遇到了同样的问题,我证明了这个解决方案:

对于您的插件菜单页面,请尝试以下操作:

function my_plugin_menu(){
   add_menu_page( 
       'My Plugin', 
       'My Plugin', 
       'capabilities', 
       'my_plugin_index', 
       'my_plugin_function', 
       plugins_url( 'images/my_plugin_icon.png', __FILE__ ), 
       menu_position 
    );
// add some submenu pages
   ...
   ...
}
Run Code Online (Sandbox Code Playgroud)

在您的register_post_type功能中:

'show_in_menu' => 'my_plugin_index' // slug from your plugin menu page
Run Code Online (Sandbox Code Playgroud)

这会在您选择的位置显示您的菜单页面,并将自定义帖子类型作为子菜单。