删除Wordpress管理栏徽标上的链接

时间:2014-05-01 10:26:59

标签: php wordpress admin graphical-logo

我已经设法用我的functions.php文件中的自定义替换管理栏中的Wordpress图标/徽标,并删除链接到Wordpress文档,支持论坛,反馈等的下拉菜单。我是什么的尝试做的是禁用徽标上的链接,该链接将您带到管理员的About Wordpress页面,该页面解释了您当前运行的版本的功能。

我想在functions.php文件中执行此操作。这可能吗?

这是我到目前为止使用的代码:

    // Replace Wordpress logo with custom Logo
function my_custom_logo() {
    echo '
    <style type="text/css">
    #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
        background-position: 0 0;
        content: url(' . get_bloginfo('stylesheet_directory') . '/assets/img/my-logo.png)!important;
        top: 2px;
        display: block;
        width: 15px;
        height: 20px;
        pointer-events: none!important;
        cursor: default;
    }
    #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
        background-position: 0 0;
    }
     </style>
    ';
}
add_action('admin_head', 'my_custom_logo');
add_action('wp_head', 'my_custom_logo');

//disable a few items on the admin bar
function remove_admin_bar_links() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('new-content');      // Remove the 'add new' button
$wp_admin_bar->remove_menu('comments');         // Remove the comments bubble
$wp_admin_bar->remove_menu('about');            // Remove the about WordPress link
$wp_admin_bar->remove_menu('wporg');            // Remove the WordPress.org link
$wp_admin_bar->remove_menu('documentation');    // Remove the WordPress documentation link
$wp_admin_bar->remove_menu('support-forums');   // Remove the support forums link
$wp_admin_bar->remove_menu('feedback');         // Remove the feedback link
}
add_action( 'wp_before_admin_bar_render', 'remove_admin_bar_links' );

2 个答案:

答案 0 :(得分:2)

我前一段时间有这个问题。
最简单的解决方案不是使用CSS,而是使用可从管理栏中删除该菜单项的功能。
然后只需添加带有徽标图像的新菜单项即可。
我会这样做,而不是用css将图标替换为您的徽标。

/*Remove WordPress menu from admin bar*/
    add_action( 'admin_bar_menu', 'remove_wp_logo', 999 );

    function remove_wp_logo( $wp_admin_bar ) {
        $wp_admin_bar->remove_node( 'wp-logo' );
    }

    /*Adds Custom Logo to Admin Bar*/
    add_action( 'admin_bar_menu', 'custom_admin_logo', 1 );
//priority 1 sets the location to the front/leftmost of the menu

    function custom_admin_logo( $wp_admin_bar ) {
        $custom_logo_id = get_theme_mod( 'custom_logo' ); //Uses theme logo
        $custom_logo_url = wp_get_attachment_image_url( $custom_logo_id , 'full' );
        $args = array(
            'id'    => 'custom_logo_admin',
            'title' => '&nbsp;',
            'meta'  => array( 'html' => '<li id="custom-logo-admin-bar" style="width: 230px;padding: 10px;padding-left: 0px;padding-right: 25px;"><img class="overlay" src="'.$custom_logo_url.'" style="float: left;width: 100%;height: auto;"></li>' )
        );
        $wp_admin_bar->add_node( $args );
    }

您可以在样式表中或直接在meta数组中使用CSS为图像设置样式。
$ wp_admin_bar-> add_node($ args);实际上是将新节点添加到管理栏中的内容。
附言这里的某些样式正是我出于个人目的所需要的,随时可以更改。

答案 1 :(得分:1)

也许您应该为它覆盖CSS并将其替换为您自己的图像,以便功能保持完好!

这是最初的CSS:

#wp-admin-bar-wp-logo > .ab-item .ab-icon {
   background-image: url("../wp-includes/images/admin-bar-sprite.png?d=20120830");
   background-position: 0 -76px;
   background-repeat: no-repeat;
   height: 20px;
   margin-top: 4px;
   width: 20px;
}

您可能希望在以下位置进行更改:

#wp-admin-bar-wp-logo > .ab-item span.ab-icon {
   background-image: url("your-image.png");
   background-repeat: no-repeat;
   height: 20px;
   margin-top: 4px;
   width: 20px;
}

请注意添加span.ab-icon以使其更具体。

如有任何法律问题,请查看其许可页面: https://codex.wordpress.org/License

GPL许可证: https://www.gnu.org/copyleft/gpl.html