WordPress Ajouter javascript:void(0); à l’élément de lien de menu ?
Je veux ajouter javascript:void(0);
à l’élément de lien de menu au lieu de #
mais il n’accepte aucun JavaScript. Maintenant, je suis quelque chose à remplacer #
par javascript:void(0);
l’utilisation de filtres, mais je n’ai pas trouvé le filtre approprié pour la tâche.
Quelqu’un peut-il me dire quel filtre peut être utilisé pour cette tâche.
Noter. Je sais que cela pourrait être fait avec javascript/jQuery, mais c’est à des fins de référencement, il faut donc le faire avec PHP côté serveur et rendre le code HTML correct pour google Spider, afin d’éviter les problèmes d’URL en double.
Solution n°1 trouvée
Méthode simple
La première chose que vous devez faire est d’ajouter un nouvel élément de menu dans votre menu. Vous pouvez le faire en allant dans Apparence » Menus. Vous souhaitez ajouter un lien personnalisé, alors donnez-lui l’étiquette que vous souhaitez. Dans le champ URL, entrez le signe #. Une fois terminé, cliquez sur le bouton Ajouter au menu. Enregistrez votre menu une fois ce lien personnalisé ajouté au menu. Ajouter un lien personnalisé au menu sans URL
Cliquez maintenant sur la flèche déroulante à côté de ce lien personnalisé pour modifier cet élément de menu. Allez-y et supprimez le signe dièse du champ URL et enregistrez votre menu. Si vous accédez à votre site Web en direct, vous verrez un élément de menu sans lien. Vous pouvez ajouter des sous-menus à cet élément de menu et les lier à n’importe quelle page ou lien personnalisé de votre choix. Suppression du signe # et création d’un menu sans aucun lien.
consultez ce lien pour plus de détails.
http://www.wpbeginner.com/beginners-guide/how-to-add-titles-in-wordpress-menu-without-linking-to-a-page/
Solution n°2 trouvée
Je ne sais pas comment cela affecte le référencement, mais juste pour répondre à cette question : –
Vous ne pouvez pas enregistrer l’élément de menu avec javascript:void(0);
car WordPress filtre l’URL à l’aide de la fonction esc_url()
supprimant ainsi les mauvaises valeurs. Et tout se passe dans la classe Nav Walker. Vous devez donc modifier l’URL lorsque WordPress a terminé le filtrage et renvoyé le code HTML final sécurisé.
Vous pouvez utiliser le filtre walker_nav_menu_start_el
si votre thème n’a pas de classe de marcheur de menu de navigation personnalisée OU a ce filtre dans la classe de marcheur.
Exemple:-
add_filter('walker_nav_menu_start_el', 'wpse_226884_replace_hash', 999);
/**
* Replace # with js
* @param string $menu_item item HTML
* @return string item HTML
*/
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;
}
0 commentaire