WordPress aggiungere voci al menu

I menu di WordPress sono fantastici. L’interfaccia drag-drop lo rende semplice sia per gli sviluppatori di temi WordPress e anche per gli utenti. Una cosa che è limitata nell’interfaccia visiva dei menu è che si possono solo aggiungere link tipo pagine, categorie o link personalizzati. E se volessi aggiungere un elemento personalizzato ai tuoi menu WordPress? Forse vuoi aggiungere una barra di ricerca o un collegamento di accesso / uscita, la data odierna o qualsiasi altra cosa in un menu di WordPress. Solo perché non esiste un’interfaccia visiva, non significa che non sia possibile. In questo articolo, ti mostrerò come utilizzare l’hook wp_nav_menu_items per aggiungere elementi personalizzati a tutti o specifici menu di WordPress.

Attenzione: questo tutorial è destinato agli sviluppatori WordPress, quindi ci si aspetta che tu conosca html/css di base e una buona comprensione di come funzionano i temi WordPress.

Un primo esempio per capire come funziona l’hook wp_nav_menu_items potrebbe essere questo:

add_filter( 'wp_nav_menu_items', 'menu_personalizzato', 10, 2 );
function menu_personalizzato( $items, $args ) {
    if (is_single() && $args->theme_location == 'main_menu') {
        $items .= '<li>Menu di Prova</li>';
    }
    return $items;
}

Ora come puoi vedere, puoi usare le istruzioni condizionali insieme all’argomento theme_location. Ciò consente di indirizzare una posizione di menu specifica con qualsiasi condizione desiderata. Se non vuoi la dichiarazione condizionale, basta non usarla. Basta aggiungerlo a una posizione di menu specifica o viceversa.

Vediamo ora alcuni esempi specifici:

Aggiunta pulsanti Login/Logout a un menu WordPress specifico

Se vuoi dare ai tuoi utenti la possibilità di accedere / disconnettersi, puoi aggiungere i link nel tuo menu personalizzato. Lo snippet di seguito mostrerà i collegamenti di accesso/uscita ai tuoi utenti in modo appropriato nella posizione del menu: principale. È possibile modificare la posizione del menu se lo si desidera.

add_filter( 'wp_nav_menu_items', 'add_loginlogout', 10, 2 );
function add_loginlogout( $items, $args ) {
    if (is_user_logged_in() && $args->theme_location == 'main_menu') {
        $items .= '<li><a href="'. wp_logout_url() .'">Esci</a></li>';
    }
    else if (!is_user_logged_in() && $args->theme_location == 'main_menu') {
        $items .= '<li><a href="'. site_url('wp-login.php') .'">Accedi</a></li>';
    }
    return $items;
}

Aggiunta di una barra di ricerca a un menu specifico

Vuoi aggiungere una barra di ricerca a un menu specifico? Non cercare oltre, puoi farlo incollando il seguente snippet:

add_filter('wp_nav_menu_items','add_search_box', 10, 2);
function add_search_box_to_menu( $items, $args ) {
    if( $args->theme_location == 'primary' ){
        $items .= "<li class='menu-header-search'><form action='https://miosito.it/' id='searchform' method='get'><input type='text' name='s' id='s' placeholder='Cerca'></form></li>";
 }
    return $items;
}

Se invece vuoi mostrarlo in tutti i menu basta cancellare la parte: if( $args->theme_location == ‘primary’ )

add_filter('wp_nav_menu_items','add_search_box', 10, 2);
function add_search_box_to_menu( $items, $args ) { 
        return $items .= "<li class='menu-header-search'><form action='https://miosito.it/' id='searchform' method='get'><input type='text' name='s' id='s' placeholder='Cerca'></form></li>";
}

0/5 (0 Reviews)

Lascia un commento

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

Torna su
×

Richiedi subito un preventivo

×

Richiedi subito un preventivo

×

Richiedi subito la tua consulenza SEO gratuita

CHIAMA

o compila il form per essere ricontattato