介绍

WordPress工具栏在登录之后出现,我们可以通过WordPress后台对工具栏的内容进行修改。

1.找到文件

进入外观>>主题编辑器>>的模板函数

2.查看节点

通过浏览器的F12可以查看到每个节点都有唯一的ID。 在 HTML 中,每个菜单项都有一个以 "wp-admin-bar-" 开始的 ID。比如工具栏左侧的 WordPress Logo 的 ID 是 "wp-admin-bar-wp-logo"。

3.节点属性

每个节点都有这些属性: - id:节点 ID - title:显示在工具栏中的文本,支持 HTML 标签 - parent:父节点的 ID - href:节点的链接地址,如果不设置,节点会显示为纯文本 - group:为节点编组,不常用 - meta:设置节点的 class、onclick、target 等属性

4.添加一个菜单

添加如下代码,如果主题已有,可以直接通过add_menu函数加入即可。 meta内容表示在新窗口打开。

function custom_adminbar_menu( $meta = TRUE ) {  
    global $wp_admin_bar;  
        if ( !is_user_logged_in() ) { return; }  
        if ( !is_super_admin() || !is_admin_bar_showing() ) { return; }  
    $wp_admin_bar->add_menu( array(  
        'id' => 'custom_menu',  
        'title' => __( 'Benzhu' ),  
        'href' => 'https://www.benzhu.xyz/',  
        'meta'  => array( target => '_blank' ) )  
    );  
}  
add_action( 'admin_bar_menu', 'custom_adminbar_menu', 15 );  
/* add_action # 后面的数字表示位置: 
10 = 在 Logo 的前面 
15 = 在 logo 和 网站名之间 
25 = 在网站名后面 
100 = 在菜单的最后面
*/
function add_mysites_logo() {  
    global $wp_admin_bar;  
    foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {  
        $menu_id  = 'blog-' . $blog->userblog_id;  
        $blogname = emptyempty( $blog->blogname ) ? $blog->domain : $blog->blogname;  
        $blavatar = '<img src="' . get_bloginfo('template_directory') . '/images/NEW-ICON-HERE.png" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" class="blavatar"/>';  
        $wp_admin_bar->add_menu( array(  
            'parent'    => 'my-sites-list',  
            'id'    => $menu_id,  
            'title'     => $blavatar . $blogname,  
            'href'  => get_admin_url( $blog->userblog_id ) )  
        );  
    }  
}  
add_action( 'wp_before_admin_bar_render', 'add_mysites_logo' );

6.移除节点

你可以通过 remove_menu() 方法来移除某一个节点,你必须将节点 ID 作为参数传入。

//移除logo案例
add_action( 'admin_bar_menu', 'remove_wp_logo', 999 );

function remove_wp_logo( $meta = TRUE ) {
    global $wp_admin_bar;
    $wp_admin_bar->remove_menu( 'wp-logo' );
}

7.修改节点

和新增节点已有,你可以通过 add_menu() 方法来修改某一节点,根据节点ID传入需要修改的属性即可。

参考资料

https://www.wpdaxue.com/custom-wordpress-bar.html