Я знаю, что вы можете добавить класс в пользовательских опциях меню, но он добавляет его в LI до A. Я хочу применить класс непосредственно к этой конкретной A, а не ко всей LI.
Таким образом, вместо вывода
<li id="menu-item-51" class="NEWCLASS menu-item menu-item-type-custom menu-item-51"><a href="#">Link</a> </li>
Я тоже хочу, чтобы это было так.
<li id="menu-item-51" class="menu-item menu-item-type-custom menu-item-51"><a href="#" class="NEWCLASS">Link</a></li>
Есть идеи?
.class
на.class a
?<li>
элемента. Если у вас есть подменю под этим конкретным элементом, это не проблема, вы можете решить это в CSS (я могу привести примеры, если это необходимо).Ответы:
Вы можете использовать
nav_menu_css_class
фильтрИспользуя этот $ item, вы можете выполнить любое условие. и это добавит класс к определенному li, и вы можете стилизовать тег на основе этого следующим образом:
источник
get_page_template_slug
к работе. Есть идеи?Я нашел решение на этом сайте с помощью пользовательского ходунка .
Два шага: замените код wp_nav_menu по умолчанию на отредактированный, а затем добавьте код в functions.php темы.
Сначала замените wp_nav_code по умолчанию следующим (код скопирован с сайта выше):
Затем добавьте следующий код в functions.php. Делая это, вы можете добавить класс к ссылкам меню:
В конце кода есть несколько строк, начинающихся с $ item_output. В частности, вы хотите посмотреть на этот кусок:
Потому что эта строка определяет вывод для начала ссылки html. Если вы измените его на что-то вроде этого:
Тогда все ваши ссылки в меню будут добавлены class = "abc".
Тем не менее, он не позволяет использовать собственный класс для каждой ссылки (или, по крайней мере, я не знаю, как его кодировать). Это проблема для меня.
Для тех, кто спрашивает, почему вы хотите это сделать? Я хочу, чтобы мои ссылки в меню открывали лайтбоксы (если быть точнее, в цветных коробках), и для этого им нужны классы в ссылках. Например:
Возможно ли способ динамически генерировать классы, такие как «lightbox1» для первой ссылки, «lightbox2» для второй ссылки и т. Д.?
источник
РЕШИТЬ !!!! Мне нужно было понять это, чтобы сделать ссылку на пункт меню для встроенного HTML в fancybox. Вставьте следующий код в файл theme.php:
Затем ... на вкладке «Меню» панели инструментов WP создайте пользовательскую ссылку и добавьте ее в свое меню. Вверху, где написано Параметры экрана, убедитесь, что у вас установлен флажок «Связь с ссылками (XFN)». Это добавит это поле в ваш пользовательский пункт меню. Введите «fancybox» (без кавычек) в поле и сохраните свое меню.
Функция ищет вызов в меню навигации, затем находит, где бы вы ни находились,
rel="fancybox"
и заменяет его наrel="fancybox" class="fancybox"
. Вы можете заменить fancybox любым классом, который вам нужно добавить в пункты меню. Готово и сделано!источник
Текущие ответы, кажется, не признают, что вопрос в том, как добавить класс к
a
элементу, а не кli
элементу, или слишком сложен. Вот простой подход с использованиемnav_menu_link_attributes
фильтра, который позволяет настроить таргетинг на определенное меню, основанное на его фрагменте, и на конкретную ссылку на страницу в этом меню, основанную на его идентификаторе. Вы можете использовать var_dump $ args и $ item, чтобы получить больше способов создать ваше условие.источник
if
его, чтобыif ($args->theme_location == 'footer-menu' )
посмотреть меню по его местоположению, и все прекрасно работаетЯ знаю, что на этот вопрос давным-давно ответили, но, как общая информация, я нашел, как добавить класс для каждого пункта меню индивидуально, используя опцию «Экран» на странице администратора WordPress для пользовательских меню.
источник
Мне пришлось сделать что-то похожее недавно и придумать другой способ. Мне пришлось добавить аналогичный класс для плагина Nivo Lightbox. Поэтому я добавил «nivo» к атрибуту rel («Link Relationship (XFN)»), а затем к
nav_menu_link_attributes
фильтру следующее.источник
В верхней части
Appearance -> Menus
страницы нажмите, чтобы развернутьScreen Options
, установите флажокCSS Classes
. Теперь, когда вы развернете каждый из добавленных пунктов меню, вы увидитеCSS Classes (optional)
поле.источник