Intereting Posts
WooCommerce – изменение структуры URL дочерней категории Не удалось показать выдержки Любой способ заставить должности наследовать свойства / таксономии посредством единой назначенной таксономии Первая установка WordPress. Cant Access Как загрузить сообщение в пустой тег div в любом месте страницы? Изображения не загружаются Создайте роль под-администратора, которая может делать все, кроме использования, или увидеть редактор кода Представления форм, не отправляемые в базу данных / отображение на панели управления WP Multisite .htaccess мешает cgi-bin Вход / выход из заголовка Добавить код в контент определенной записи Пользовательский тип сообщения (Jigoshop): неожиданное значение для $ category_id (через $ term-> term_taxonomy_id) на реальном сервере Манипулировать категорию должности после времени Кнопка «Добавить новую» отсутствует Как получить общее количество категорий в списке результатов поиска?

Как установить имя класса для тега <li> в меню WordPress?

Я использую.

<?php wp_nav_menu($args); ?> 

для получения меню из wordpress.it возвращает меню с <ul> и <li> структурой. В том, что мне нужно установить имя класса для каждого <li> однозначно.

спасибо ravi

Более просто, вы можете просто ввести уникальное имя класса на странице меню администратора /wp-admin/nav-menus.php . Возможно, вам придется посмотреть в верхнем правом углу страницы «Параметры экрана», а затем включить CSS-классы. Затем отредактируйте любой пункт меню и добавьте класс.

Это должно помочь вам приятелю – http://wpveda.com/add-custom-classes-wpnavmenu-condition/

Зачем?

Вы можете добавить как ID, так и класс в содержащий тег UL, используя аргументы, переданные в wp_nav_menu() , что должно дать вам более чем достаточно специфичности для целевых тегов LI-потомков.

Что вы пытаетесь сделать, в частности? Я уверен, что мы сможем найти способ ее достижения.

Единственный способ, с помощью которого я мог бы это сделать, – добавить фильтр в wp_nav_menu_items. Вот код, который я получил для работы, добавив ID (просто добавьте его в свой файл functions.php тем и измените его по мере необходимости. Вы должны иметь возможность сделать что-то подобное для классов):

 add_filter('wp_nav_menu_items', 'my_id_name_nav', 10, 2); function my_id_name_nav($items,$args) { if( $args->theme_location == 'primary' ) { preg_match_all('/<li id="menu-item-([0-9]+)"([^>]+)>\s*<a href="([^"]+)">([^<]+)<\/a><\/li>/i', $items, $matches); $newItems = array(); for($i=0; $i<count($matches[0]); $i++){ $short = explode('/', $matches[3][$i]); $short = $short[count($short) - 2]; // if there is no trailing slash, subtract 1 instead of 2 array_push($newItems, '<li id="menu-item-'. $short .'"'. $matches[2][$i] .'><a href="'. $matches[3][$i] .'">'. $matches[4][$i] .'</a></li>'); } return implode('', $newItems); } else { return $items; } } 

Он использует последнюю часть URL-адреса для создания имени страницы для класса. Таким образом, пункт меню-2 для http://yoursite.com/page1/page2/ станет пунктом меню-страницы-страницы2.

Значение if( $args->theme_location == 'primary' ) предназначено для таргетинга на определенное меню. Если вы хотите сделать это для всех меню, просто удалите оператор if else.