问题是,您使用的函数在发送http头之后运行,所以它无法重定向。
你必须用另一种方法。
一种方法是拦截全局menu
变量并添加具有所有属性的新菜单项:
add_action( \'admin_menu\', \'register_web_menu_page\', 999);
function register_web_menu_page () {
global $menu;
$menu[9] = array (
\'View My Website\', // menu title
\'add_users\', // capability
home_url(), // menu item url
null,
\'menu-top menu-icon-generic toplevel_page_web_menu_page\', // menu item class
\'View My Website\', // page title
false // menu function
);
}
这不是一种标准的方式,因为您知道添加菜单项的标准方式是使用
add_menu_page
作用
如果只想使用标准实践,请使用“不做任何事情”功能设置菜单,就像\'__return_false\'
, 然后使用另一个函数重定向到主页,如果$_GET[\'page\']
is=到admin init上的菜单slug(在发送标题之前):
add_action(\'admin_menu\', \'register_web_menu_page\');
function register_web_menu_page() {
add_menu_page(\'View My Website\', \'View My Website\', \'add_users\', \'web_menu_page\', \'__return_false\', null, 9);
}
add_action(\'admin_init\', \'redirect_to_site\', 1);
function redirect_to_site() {
if ( isset($_GET[\'page\']) && $_GET[\'page\'] == \'web_menu_page\' ) {
wp_redirect( home_url() );
exit();
}
}