3

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

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

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

例如,假设我使用函数add_menu_page创建菜单选项“MyPlugin”,然后在此菜单下方通过函数 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 ?

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

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

'show_in_menu'          =>  'admin.php?page=myplugin.php'

这有可能实现吗?

4

2 回答 2

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
   ...
   ...
}

在你的register_post_type函数中:

'show_in_menu' => 'my_plugin_index' // slug from your plugin menu page

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

于 2014-05-29T15:49:48.017 回答
4

在您的register_post_type, 添加这个小片段

"menu_position" => 100,// below second seperator

这是菜单位置的位置

 2 Dashboard
 4 Separator
 5 Posts
 10 Media
 15 Links
 20 Pages
 25 Comments
 59 Separator
 60 Appearance
 65 Plugins
 70 Users
 75 Tools
 80 Settings
 99 Separator

如果您将位置设置为大于 100,它将继续将它们添加到管理菜单的最底部。

我创建了一个自定义的wp帖子类型生成器(SITE GONE),您可以在右侧看到自定义帖子类型的位置,输入帖子类型名称,(复数)然后您可以在此选择菜单位置,它会更改位置以显示它将出现的位置,

如果您在构建菜单结构时遇到问题,试试这个

function myplugin_menu() {
    add_menu_page('MyPlugin', 'MyPlugin', 'add_users', __FILE__, 'myplugin-page-name', plugins_url('MyPluginFolder/images/icon.png') );
    add_submenu_page(__FILE__, 'Cars', 'Cars', 8, 'myplugin-cars-page', 'cars');
    add_submenu_page(__FILE__, 'Settings', 'Settings', 8, 'myplugin-settings-page', 'myplugin_settings_function');
    add_submenu_page(__FILE__, 'Do Stuff', 'Do Stuff', 8, 'myplugin-dostuff-page', 'myplugin_dostuff_function');
}
add_action('admin_menu', 'myplugin_menu');

http://codex.wordpress.org/Function_Reference/add_menu_page

于 2013-03-28T10:12:38.980 回答