添加打开URL的顶层菜单

时间:2015-09-18 作者:Ohsik

以下代码添加My Page 管理菜单中的按钮。当你点击它时,它会带你进入你的作者页面。但是,它也会打开新页面(空白页面)。

我希望它只是把你们带到作者页面,而不是在后端打开一个新页面。我如何做到这一点?我还为所有用户角色显示此菜单(现在只显示在管理员角色上)

我知道我的代码错了。请让我知道如果你有任何建议写得更好。

add_action( \'admin_menu\', \'add_my_custom_menu\' );

function add_my_custom_menu() {
    //add an item to the menu
    add_menu_page (
        \'My Page\',
        \'My Page\',
        \'manage_options\',
        \'my-page\',
        \'see_my_page_function\',
        \'dashicons-controls-play\',
        \'100\'
    );
}

function see_my_page_function() {
    $current_user = wp_get_current_user();
    ?>
    <script>
        url = "<?php echo get_site_url().\'/author/\'.$current_user->user_login.\'/\'; ?>";
        window.open(url, \'_blank\');
    </script>
    <?php
}

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

我在本网站的其他地方尝试了各种解决方案或变通方法,例如:Adding an Arbitrary Link to the Admin Menu? 这里有一个:http://www.techedg.com/2014/09/06/5575/a-simple-way-to-add-an-external-link-to-the-wordpress-admin-menu/

我测试的所有有效解决方案都包括添加不需要的空白管理页面的行为我不确定是否有什么解决方案隐藏在某个地方-或者你可以使用一些技巧在页面打开后关闭它但有迹象表明,WP不希望你做你想做的事。

我认为您可以尝试的最干净的解决方案是直接向子菜单添加链接。你会在我上面链接的页面上找到一些指示。

您还可以考虑简单地通过空白页面添加链接或重新定向:换句话说,与WordPress合作加载页面,并从那里开始工作:向也出现在那里的作者页面添加链接,启动一些其他过程,指向用户配置文件页面,或合并其他功能来编辑用户配置文件信息。

要回答您的小问题,要使链接对所有用户都可用,请在add\\u menu\\u page()数组下使用“read”而不是“manage\\u options”作为第三个功能变量。

SO网友:Bryan Willis

在您的情况下,这将自动打开登录作者的作者url:

function add_custom_menu_item_logged_in_author(){
    add_menu_page( \'My Posts\', \'My Posts\', \'manage_options\', \'author-redirect\', \'custom_menu_item_redirect\', \'dashicons-nametag\', 1 );
}
add_action( \'admin_menu\', \'add_custom_menu_item_logged_in_author\' );


function custom_menu_item_redirect_logged_in_author() {
        global $current_user;
        get_currentuserinfo();
        // change $my_redirect_url if accessing a different url other than author page
        $my_redirect_url = get_author_posts_url($current_user->ID); 
        $menu_redirect = isset($_GET[\'page\']) ? $_GET[\'page\'] : false;

        if($menu_redirect == \'author-redirect\' ) {
            wp_safe_redirect( $my_redirect_url );
            exit();
        }

}
add_action( \'admin_init\', \'custom_menu_item_redirect_logged_in_author\', 1 );

相关推荐

Calculations in functions.php

我为自己创建了一个发票主题,并试图在自定义列中获取发票总额。我已经尝试调整模板页面中使用的代码,以便在函数中显示这一点。php文件,但它不工作。我的乘法操作数出现了一个操作数错误,我不知道为什么。这是我的代码(如有任何帮助,将不胜感激)。if( $column_name == \'invoice_total\' ) { $hours = 0; // This allows counting of each sub_field //* Set repeater va