wp-note

Sviluppo Siti Web

Come Personalizzare la Admin Bar di WordPress: aggiungere e rimuovere voci di menu

In questo articolo andiamo ad analizzare come personalizzare la Admin Bar di WordPress aggiungendo nuove voci di menu.

La Admin Bar è quella comoda barra orizzontale che appare nella parte superiore del tuo sito WordPress quando sei loggato. Essa offre un accesso rapido a diverse funzioni utili, come la creazione di nuovi post, la gestione dei commenti e la personalizzazione del sito. Ma cosa succede se desideri aggiungere le tue proprie voci di menu per accedere più rapidamente a funzioni specifiche o pagine personalizzate? In questo articolo, esploreremo come fare esattamente questo senza l’utilizzo di plugin!

Aggiungere una nuova voce di menu nella admin bar

Apri il file functions.php con un editor di testo e inserisci il seguente codice PHP alla fine del file:

function aggiungi_nuova_voce_admin_bar($wp_admin_bar) {
    $args = array(
        'id' => 'voce_personalizzata',
        'title' => 'La Mia Voce Personalizzata',
        'href' => 'https://www.tuosito.com/pagina-personalizzata',
        'parent' => 'top-secondary', // posiziona questa voce di menù a destra
    );
    $wp_admin_bar->add_node($args);
}
add_action('admin_bar_menu', 'aggiungi_nuova_voce_admin_bar', 999);

In questo esempio, abbiamo creato una funzione chiamata aggiungi_nuova_voce_admin_bar che aggiunge una nuova voce di menu con l’ID voce_personalizzata, il titolo “La Mia Voce Personalizzata” e un link alla tua pagina personalizzata. Il parametro parent impostato a top-secondary consente di inserire la voce di menù a destra:

wp admin bar menu personalizzato allineata a destra

Per inserire il menù a sinistra rimuovere l’attributo parent:

function aggiungi_nuova_voce_admin_bar($wp_admin_bar) {
    $args = array(
        'id' => 'voce_personalizzata',
        'title' => 'La Mia Voce Personalizzata',
        'href' => 'https://www.tuosito.com/pagina-personalizzata'
    );
    $wp_admin_bar->add_node($args);
}
add_action('admin_bar_menu', 'aggiungi_nuova_voce_admin_bar', 999);
wp admin bar menu personalizzato allineata a sinistra

Aggiungere sottovoci / sottomenu alla Admin Bar

Se desideri organizzare meglio le tue voci di menu, puoi aggiungere sottovoci. Ecco come farlo:

function aggiungi_sottovoce_admin_bar($wp_admin_bar) {
    //creazione voce principale
	  $args_top = array(
        'id' => 'main_custom',
        'title' => 'Voce Principale'
    );
    $wp_admin_bar->add_node($args_top);

    //creazione sotto voce
    $args_sub = array(
        'id' => 'sub_custom',
        'title' => 'Sottovoce',
        'parent' => 'main_custom', // ID della voce di menu principale
        'href' => 'https://www.tuosito.com/pagina-sottovoce',
    );
    $wp_admin_bar->add_node($args_sub);
}
add_action('admin_bar_menu', 'aggiungi_sottovoce_admin_bar', 1000);
wp admin bar menu sottomenu

Aggiungere icona alla voce di menù

Per rendere la tua voce di menu più visivamente accattivante, puoi aggiungere un’icona accanto al titolo. WordPress supporta le icone di Dashicons. Ecco un esempio utilizzando Dashicons:

function aggiungi_nuova_voce_admin_bar($wp_admin_bar) {
    $args = array(
        'id' => 'voce_personalizzata',
        'title' => '<span class="ab-icon dashicons dashicons-admin-site"></span> La Mia Voce con Icona',
        'href' => 'https://www.tuosito.com/pagina-personalizzata'
    );
    $wp_admin_bar->add_node($args);
}
add_action('admin_bar_menu', 'aggiungi_nuova_voce_admin_bar', 999);

Rimuovere dalla admin bar una voce di menù

Se desideri rimuovere una voce esistente dalla Admin Bar, puoi farlo con il seguente codice:

function rimuovi_voce_admin_bar($wp_admin_bar) {
    $wp_admin_bar->remove_node('ID_voce_da_rimuovere');
}
add_action('admin_bar_menu', 'rimuovi_voce_admin_bar', 999);

Sostituisci 'ID_voce_da_rimuovere' con l’ID della voce che desideri rimuovere. Per trovare l’ID di una voce della Admin Bar in WordPress è necessario ispezionare il codice html. Solitamente è sufficiente togliere il prefisso wp-admin-bar- all’id del div.

admin bar html

Esempio:

function rimuovi_voce_admin_bar($wp_admin_bar) {
    //id html "wp-admin-bar-new-content" -> inserisco "new-content"
    $wp_admin_bar->remove_node('new-content');
}
add_action('admin_bar_menu', 'rimuovi_voce_admin_bar', 999);

Esempio 1: Mostrare una Voce di Menu Solo agli Editori

Se desideri che una specifica voce di menu sia visibile solo agli utenti con il ruolo di “Editore”, puoi utilizzare il seguente codice:

function aggiungi_voce_solo_editori($wp_admin_bar) {
    if (current_user_can('editor') || current_user_can('administrator')) {
        $args = array(
            'id' => 'voce_solo_editori',
            'title' => 'Strumenti per Editori',
            'href' => admin_url('tools.php'),
        );
        $wp_admin_bar->add_node($args);
    }
}
add_action('admin_bar_menu', 'aggiungi_voce_solo_editori', 9999);

Esempio 2: aggiungere un contatore dei commenti non letti

Se vuoi avere un rapido accesso al numero di commenti non letti direttamente dalla Admin Bar, puoi fare così:

function aggiungi_contatore_commenti($wp_admin_bar) {
    $num_commenti = get_comments(['count' => true, 'status' => 'hold']);
    $args = array(
        'id' => 'contatore_commenti',
        'title' => "Commenti non letti ($num_commenti)",
        'href' => admin_url('edit-comments.php?comment_status=moderated'),
    );
    $wp_admin_bar->add_node($args);
}
add_action('admin_bar_menu', 'aggiungi_contatore_commenti', 1000);

Possibili problemi

Se dopo aver aggiunto la tua nuova voce di menu non la vedi apparire, potrebbe essere causato dal numero di priorità troppo basso nell’hook add_action. Prova ad aumentarla oppure disabilita tutti i plugin per verificare che non ci sia qualche conflitto.

Spero che questi esempi ti possano aiutare!


Pubblicato

in

, ,

da

Tag:

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *