在我的WP管理页面中有一个名为Shopp的插件,这个插件有顶级菜单"Shopp“。
这是顶级菜单:
$menus['main'] = add_menu_page('Shopp', 'Shopp', SHOPP_USERLEVEL, 'shopp-orders', array(&$this,'orders'));我已经创建了一些插件,需要在"Shopp“顶级菜单下添加作为子菜单,所以它添加了子菜单(链接. when /admin.php?page=ach-faq.php),但是当我单击子菜单时,它显示”您没有足够的权限访问此页面。“
调试结果:
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 =我的代码:
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');,我怎样才能解决这个问题?请帮帮我!
发布于 2010-05-17 19:42:25
菜单和子菜单页应该同时调用,并使用相同的段塞。例如
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");
}这将导致一个顶级菜单“我的菜单”和一个“我的子菜单”的子菜单。
当您将文件用于子菜单时,似乎会出现无效的权限错误。
发布于 2017-12-15 07:39:28
要将其添加到插件的父菜单中,请使用add_submenu_page(),并将add_action()的优先级设置为较低,即10以上。
然后在add_submenu_page()中,将“插件-父菜单-段塞”替换为父菜单中的段塞,然后将其添加到父菜单中。例如,您想要将它添加到一个带有片段/wp-admin/admin.php?page=plugin-parent-menu-slug.的管理页面下。
// 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";
}发布于 2016-08-05 21:08:56
您可以将子菜单添加到现有的自定义菜单(由其他插件添加),只需一点技巧。
您可以创建菜单,然后在添加具有相同弹格和回调的子菜单之后删除菜单本身。
请尝试以下代码:
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";
}https://stackoverflow.com/questions/2240460
复制相似问题