管理顶级菜单,指向外部URL

时间:2011-11-05 作者:INT

我想在管理菜单部分创建一个全新的顶级菜单,并将其作为外部链接,这在当前系统中是否可行?

如果您将链接作为子菜单放在仪表板下,例如,t31os在此线程中提供的解决方案就会起作用。但这不是我想做的。

Adding an Arbitrary Link to the Admin Menu?

2 个回复
最合适的回答,由SO网友:t31os 整理而成

只需将自定义项目添加到$menu 而不是$submenu.

此处用作父菜单结构的参考
http://core.trac.wordpress.org/browser/tags/3.2.1/wp-admin/menu.php

例如:。

add_action( \'admin_menu\' , \'admin_menu_wpse32975\' );
function admin_menu_wpse32975() {
    global $menu;
    $menu[9999] = array( __(\'My Menu\'), \'manage_options\', \'http://www.google.com\', \'\', \'open-if-no-js menu-top\', \'\', \'div\' );
}  

SO网友:Bryan Willis

对于外部链接,这将使用add_menu_pageadd_submenu_page. 只要换一下http://www.google.com 下面是您所需的链接:

function add_custom_menu_item_external_url(){
    add_menu_page( \'My Posts\', \'My Posts\', \'manage_options\', \'link-to-google\', \'custom_menu_item_redirect\', \'dashicons-admin-links\', 1 );
}
add_action( \'admin_menu\', \'add_custom_menu_item_external_url\' );


function custom_menu_item_redirect_external_link() {
        $menu_redirect = isset($_GET[\'page\']) ? $_GET[\'page\'] : false;
        if($menu_redirect == \'link-to-google\' ) {
            header(\'Location: http://www.google.com\');
            exit();
        }
}
add_action( \'admin_init\', \'custom_menu_item_redirect_external_link\', 1 );
对于内部链接,请在下面使用并更改home\\u url()或类似登录的内容author page 检查一下:

function add_custom_admin_menu_page_home_url(){
    add_menu_page( \'Home\', \'Home\', \'manage_options\', \'home-redirect\', \'custom_menu_item_redirect_home_url\', \'dashicons-admin-links\', 1 );
}
add_action( \'admin_menu\', \'add_custom_admin_menu_page_home_url\' );


function custom_menu_item_redirect_home_url() {
        $menu_redirect = isset($_GET[\'page\']) ? $_GET[\'page\'] : false;
        if($menu_redirect == \'home-redirect\' ) {
            wp_safe_redirect( home_url() );
            exit();
        }
}
add_action( \'admin_init\', \'custom_menu_item_redirect_home_url\', 1 );

结束

相关推荐

WP-admin阻止导致上传时出现http错误

我使用这个功能来防止管理员以外的用户访问wordpress的后端。(注意,这一添加也允许ajax请求):add_action( \'init\', \'my_block_users\' ); function my_block_users() { $isAjax = (defined(\'DOING_AJAX\') && true === DOING_AJAX) ? true : false; if(!$isAjax) {&#