首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在另一个插件菜单下添加新的自定义子菜单

如何在另一个插件菜单下添加新的自定义子菜单
EN

Stack Overflow用户
提问于 2010-02-10 21:24:32
回答 7查看 45.5K关注 0票数 11

在我的WP管理页面中有一个名为Shopp的插件,这个插件有顶级菜单"Shopp“。

这是顶级菜单:

代码语言:javascript
复制
$menus['main'] = add_menu_page('Shopp', 'Shopp', SHOPP_USERLEVEL, 'shopp-orders', array(&$this,'orders'));

我已经创建了一些插件,需要在"Shopp“顶级菜单下添加作为子菜单,所以它添加了子菜单(链接. when /admin.php?page=ach-faq.php),但是当我单击子菜单时,它显示”您没有足够的权限访问此页面。“

调试结果:

代码语言:javascript
复制
Pagenow = admin.php
Parent = shopp-orders
Hookname = shopp_page_ach-faq
Menu = Array
Submenu = Array
Menu nopriv = Array
Submenu nopriv =
Plugin page = ach-faq.php
Registered pages =

我的代码:

代码语言:javascript
复制
function ach_faq_menu(){
 add_submenu_page('shopp-orders', 'My FAQ Plugin', 'My FAQ Plugin', 8, __FILE__, 'section_1');
}
function section_1(){
 echo 'Text';
}
add_action('admin_menu', 'ach_faq_menu');

,我怎样才能解决这个问题?请帮帮我!

EN

回答 7

Stack Overflow用户

发布于 2010-05-17 19:42:25

菜单和子菜单页应该同时调用,并使用相同的段塞。例如

代码语言:javascript
复制
add_action("admin_menu", "createMyMenus");

function createMyMenus() {
    add_menu_page("My Menu", "My Menu", 0, "my-menu-slug", "myMenuPageFunction");
    add_submenu_page("my-menu-slug", "My Submenu", "My Submenu", 0, "my-submenu-slug", "mySubmenuPageFunction");
}

这将导致一个顶级菜单“我的菜单”和一个“我的子菜单”的子菜单。

当您将文件用于子菜单时,似乎会出现无效的权限错误。

票数 23
EN

Stack Overflow用户

发布于 2017-12-15 07:39:28

要将其添加到插件的父菜单中,请使用add_submenu_page(),并将add_action()的优先级设置为较低,即10以上。

然后在add_submenu_page()中,将“插件-父菜单-段塞”替换为父菜单中的段塞,然后将其添加到父菜单中。例如,您想要将它添加到一个带有片段/wp-admin/admin.php?page=plugin-parent-menu-slug.的管理页面下。

代码语言:javascript
复制
// set priority to lower i.e. greater than 10
add_action( 'admin_menu', 'my_admin_menu', 20 );

function my_admin_menu() {
    add_submenu_page( 'plugin-parent-menu-slug', 'New Menu', 'New Menu', 'manage_options', 'my-admin-slug', 'my_admin_page' );
}

function my_admin_page(){
    echo "My Admin Page";
}
票数 4
EN

Stack Overflow用户

发布于 2016-08-05 21:08:56

您可以将子菜单添加到现有的自定义菜单(由其他插件添加),只需一点技巧。

您可以创建菜单,然后在添加具有相同弹格和回调的子菜单之后删除菜单本身。

请尝试以下代码:

代码语言:javascript
复制
add_action( 'admin_menu', 'add_shopp_submenu' );
function add_shopp_submenu(){
    add_menu_page( __('New Menu', 'your-plugin-text-domain'), __('New Menu', 'your-plugin-text-domain'), 'read', 'ach-faq', 'your_menu_callback');
    add_submenu_page( 'shopp-orders', __('New Menu', 'your-plugin-text-domain'), __('New Menu', 'your-plugin-text-domain'), 'read', 'ach-faq', 'your_menu_callback' );
    remove_menu_page('ach-faq');
}

function your_menu_callback(){
    echo "string";
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2240460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档