gpt4 book ai didi

wordpress - 如果菜单别名与顶级菜单中的相同,则 add_submenu_page 不显示子菜单

转载 作者:行者123 更新时间:2023-12-02 04:54:00 24 4
gpt4 key购买 nike

我正在尝试创建一个顶级菜单和一个子菜单,但为了防止在子菜单中复制顶级菜单,我将子菜单 menu_slug 设置为与顶级菜单相同。为什么在这种情况下根本不显示子菜单?

add_action("admin_menu", "setup_theme_admin_menus");    

function setup_theme_admin_menus() {
add_menu_page('Theme settings', 'Example theme', 'manage_options',
'tut_theme_settings', 'theme_settings_page');

add_submenu_page('tut_theme_settings',
'Front Page Elements', 'Front Page', 'manage_options',
'tut_theme_settings', 'theme_front_page_settings');
}

// Handler to top level menu
function theme_settings_page() {
}

function theme_front_page_settings() {
echo "Some text of submenu page";
}

最佳答案

这是默认行为,请参阅 $menu_slug documentation对于 add_submenu_page:

If you want to NOT duplicate the parent menu item, you need to set the name of the $menu_slug exactly the same as the parent slug.

问题是放置相同的 slug 会合并菜单和子菜单的回调。


您可能需要操纵全局 $submenu 变量来实现您的目标,请注意我为子菜单提供了不同的 slug:

add_action( 'admin_menu', 'setup_theme_admin_menus' );    

function setup_theme_admin_menus()
{
add_menu_page(
'Theme settings',
'Example theme',
'manage_options',
'tut_theme_settings',
'theme_settings_page'
);

add_submenu_page(
'tut_theme_settings', // parent slug
'Front Page Elements 2', // page title
'Front Page 2', // menu title
'manage_options', // capability
'tut_theme_settings2', // slug
'theme_front_page_settings' // callback
);

// REMOVE THE SUBMENU CREATED BY add_menu_page
global $submenu;
unset( $submenu['tut_theme_settings'][0] );
}

关于wordpress - 如果菜单别名与顶级菜单中的相同,则 add_submenu_page 不显示子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18327471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com