web-dev-qa-db-fra.com

Ajouter le site de visite à votre barre d'outils au lieu d'être dans le menu déroulant

Je cherche un moyen de déplacer le lien "Visiter le site" depuis la liste déroulante et de l'ajouter à la barre d'outils principale, comme dans l'image ci-dessous:

 enter image description here 

5
andreiudeiu

Pas compliqué, mais un peu délicat pour bien faire les choses.

Quelque chose comme cela devrait fonctionner, mais vous devrez peut-être expérimenter en priorité pour obtenir le lien vers une position spécifique sur la barre:

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

Ajoutez ceci au functions.php de votre thème:

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 );
}

Cela déplacera le "Site View" à droite du menu déroulant Dashboard. Pour plus d'informations, voir le Codex ; le code ci-dessus provient de la section "Définir un nœud parent existant".

8
Gabriel