Intereting Posts
Hook registration_errors не был вызван Gravatar не отображается при вызове деталей пользователей Уведомление в режиме реального времени о профиле пользователя после нового комментария Как заставить список авторов в раскрывающемся меню авторов Как добавить несколько копий виджета из «доступных виджетов» Использовать структуру меню для постоянных ссылок Сделать W3 Total Cache «Очистить все кеши» функция очистить лак Невозможно вставить категории в меню показывать теги только на "single" -template sidebar Как получить параметры на этой странице параметров? Добавить пользовательский пункт меню с помощью фильтра wp_nav_menu_items Могу ли я установить / вставить WordPress на «одну страницу»? Как я могу получить все пользовательские параметры? Можно ли назначить шаблон настраиваемому типу сообщений? Имейте сообщение WordPress перенаправить на url при вступлении в iPad (Safari)

Как установить имя класса для тега <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.