WordPress: Aggiungere javascript:void(0); a un elemento del menu?
Voglio aggiungere javascript:void(0);
agli elementi del menu invece di #
, ma WordPress non accetta codice JavaScript.
Sto pensando di sostituire #
con javascript:void(0);
utilizzando dei filtri, ma non riesco a trovare il filtro appropriato per questa operazione.
Qualcuno può indicarmi quale filtro posso usare per questo scopo?
Nota: So che questo potrebbe essere fatto con JavaScript/jQuery, ma è per motivi SEO quindi devo farlo con PHP lato server e generare l'HTML corretto per il crawler di Google, per evitare problemi di URL duplicati.
Non sono sicuro di come influisca sulla SEO, ma solo per rispondere a questa domanda:-
Non puoi salvare una voce di menu con javascript:void(0);
perché WordPress filtra l'URL utilizzando la funzione esc_url()
, rimuovendo così i valori non validi. Tutto ciò avviene nella classe Nav Walker. Quindi devi modificare l'URL dopo che WordPress ha completato il filtraggio e restituito l'HTML finale sicuro.
Puoi usare il filtro walker_nav_menu_start_el
se il tuo tema non ha una classe personalizzata per il walker del menu di navigazione OPPURE se ha questo filtro nella classe walker.
Esempio:-
add_filter('walker_nav_menu_start_el', 'wpse_226884_replace_hash', 999);
/**
* Sostituisce # con js
* @param string $menu_item HTML della voce di menu
* @return string HTML della voce di menu
*/
function wpse_226884_replace_hash($menu_item) {
if (strpos($menu_item, 'href="#"') !== false) {
$menu_item = str_replace('href="#"', 'href="javascript:void(0);"', $menu_item);
}
return $menu_item;
}

Metodo Semplice
La prima cosa da fare è aggiungere una nuova voce al tuo menu. Puoi farlo andando su Aspetto » Menu. Aggiungi un link personalizzato assegnandogli l'etichetta che preferisci. Nel campo URL, inserisci il simbolo #. Una volta fatto, clicca sul pulsante Aggiungi al Menu. Salva il menu dopo aver aggiunto questo link personalizzato. Aggiunta di un link personalizzato al menu senza URL
Ora clicca sulla freccia a discesa accanto a questo link personalizzato per modificare la voce del menu. Rimuovi il simbolo # dal campo URL e salva il menu. Se visiti il tuo sito live, vedrai una voce di menu senza link. Puoi aggiungere sotto-menu a questa voce e collegarli a qualsiasi pagina o link personalizzato desideri. Rimozione del simbolo # e creazione di un menu senza alcun link.
Consulta questo link per maggiori dettagli.
