web-dev-qa-db-ja.com

ドロップダウンではなく、訪問サイトをツールバーに追加する

下の画像のように、[サイトにアクセス]リンクをドロップダウンからメインツールバーに追加する方法を探しています。

enter image description here 

5
andreiudeiu

複雑ではありませんが、タイミングを正しくとるために少し注意が必要です。

このようなものでもうまくいくはずですが、バーの特定の位置へのリンクを取得するために優先順位を試す必要があるかもしれません。

add_action( 'admin_bar_menu', function ( $wp_admin_bar ) {

    if ( ! is_admin() ) {
        return;
    }

    /** @var WP_Admin_Bar $wp_admin_bar */
    $wp_admin_bar->remove_node( 'view-site' );

    $wp_admin_bar->add_menu( array(
        'id'    => 'view-site',
        'title' => __( 'Visit Site' ),
        'href'  => home_url( '/' ),
    ) );
}, 31 ); // After `wp_admin_bar_site_menu()` at 30.
7
Rarst

これをあなたのテーマのfunctions.phpに追加してください:

add_action( 'admin_bar_menu', 'make_parent_node', 999 );
function make_parent_node( $wp_admin_bar ) {
    if ( ! is_admin() ) { return; }  // end function if not in admin back-end, credit @Rarst
    $args = array(
        'id'     => 'view-site',  // id of the existing child node (View Site)
        'title'  => 'Visit Site', // alter the title of existing node (optional)
        'parent' => false         // set parent to false to make it a top level (parent) node
    );
    $wp_admin_bar->add_node( $args );
}

これにより、[サイトの表示]が[ダッシュボード]ドロップダウンのすぐ右に移動します。詳しくは、 Codex を参照してください。上記のコードは、「既存の子ノードを親ノードにする」からのものです。

8
Gabriel