Intereting Posts
Плагин для подсчета загрузки файла Минимизировать запросы базы данных к пользовательским таблицам? Установка WordPress только для отдельной страницы – «mydomain.com/blog» Как вставить в очередь скрипты по умолчанию с зависимостью? переопределить категорию со страницей, используя правило перезаписи Плагин дополнений не может щелкнуть кнопку библиотеки мультимедиа Довольно URL-адреса и пользовательские типы сообщений Могут ли пользователи менять язык локали? Разрешить анонимным пользователям отправлять сообщения на мой сайт для модерации преобразование доменов многостраничного домена wordpress перенаправляет на исходный субдомен Развернуть автора, теги и категории в WordPress JSON API Узнайте, не имеет ли страница Как сделать видео-игру для главной страницы? Множество действий с данными Ajax CPT, пользовательская роль пользователя и проблема с менеджером пользователя

Настройте меню, добавив элементы

Мне нужно отобразить простое меню, подобное этому:

<nav class="main"> <a href="/" class="home"> <span class="logo"></span> <span class="company-name">My Company</span> <span class="page-name">Home</span> </a> <a href="one-page">One page</a> <a href="two-page" class="selected-current">Two page</a> <a href="three-page">Three page</a> <a href="about">About</a> <div class="account"> <a href="login" class="login">Login</a> </div> 

Для этого я продолжаю так:

/theme/function.php

 <?php // Adding Log in/out links to a Specific WordPress Menu add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 ); function add_loginout_link( $items, $args ) { if (is_user_logged_in() && $args->theme_location == 'primary') { $items .= '<div class="account"><a href="'. wp_logout_url() .'" class="login">Logout</a></div>'; } elseif (!is_user_logged_in() && $args->theme_location == 'primary') { $items .= '<div class="account"><a href="'. site_url('wp-login.php') .'" class="login">Login</a></div>'; } return $items; } 

/theme/header.php

 <nav class="main"><?php $menuParameters = array( 'theme_location' => 'primary', 'fallback_cb' => 'starkers_menu', 'container' => false, 'echo' => false, 'items_wrap' => '%3$s', 'depth' => 0, ); echo strip_tags(wp_nav_menu( $menuParameters ), '<a><div>' ); ?></nav> 

Я не могу управлять страницами классов для текущего и тегов (span) для первого URL (дома).

Спасибо заранее за вашу помощь.

сердечно

Solutions Collecting From Web of "Настройте меню, добавив элементы"

Для этого вам необходимо расширить класс Walker_Nav_Menu .

Сначала создайте класс, который расширяет Walker_Nav_Menu

 /** * Custom nav menu. * Code copy-pasted from /wp-includes/nav-menu-template.php * * @package WordPress * @since 3.0.0 * @uses Walker_Nav_Menu */ class User16975_Custom_Menu_Walker extends Walker_Nav_Menu { /** * @see Walker_Nav_Menu::start_lvl() * @since 3.0.0 * * @param string $output Passed by reference. */ function start_lvl(&$output) {} /** * @see Walker_Nav_Menu::end_lvl() * @since 3.0.0 * * @param string $output Passed by reference. */ function end_lvl(&$output) { } /** * @see Walker::start_el() * @since 3.0.0 * * @param string $output Passed by reference. Used to append additional content. * @param object $item Menu item data object. * @param int $depth Depth of menu item. Used for padding. * @param object $args */ function start_el(&$output, $item, $depth, $args) { } } 

Затем start_el функцию start_el соответствующую вашим потребностям.

Наконец, заставьте WP использовать ваш класс вместо стандартного:

 add_filter( 'wp_edit_nav_menu_walker', 'user16975_walker_class'); function user16975_walker_class($class){ return "User16975_Custom_Menu_Walker"; } 

Вы также можете реализовать end_lvl в своем классе, чтобы добавить ссылку для входа.