WordPress: Aggiungere javascript:void(0); a un elemento del menu?

17 mag 2016, 15:29:29
Visualizzazioni: 16K
Voti: 2

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.

4
Commenti

Perché vuoi farlo?

Sumit Sumit
17 mag 2016 15:39:14

Per favore specifica se vuoi cambiare un particolare elemento del menu o tutti?

Max Yudin Max Yudin
17 mag 2016 15:53:44

qualsiasi link che abbia #

user3114253 user3114253
17 mag 2016 17:02:15

@Sumit Il Team SEO vuole così...

user3114253 user3114253
17 mag 2016 17:02:49
Tutte le risposte alla domanda 2
2

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;
}
17 mag 2016 18:04:21
Commenti

È semplicemente perfetto :)

user3114253 user3114253
18 mag 2016 10:27:04

Nota importante per chi è nuovo a WordPress (come me): dovete fare le modifiche nel file functions.php del vostro tema attivo (/wp-content/themes/nomedeltuotema).

Kirk Hammett Kirk Hammett
27 mar 2017 16:31:55
0

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.

http://www.wpbeginner.com/beginners-guide/how-to-add-titles-in-wordpress-menu-without-linking-to-a-page/

17 mag 2016 21:08:06