Вот моя проблема:
Я хочу создать меню WordPress и дать классы каждому элементу меню, чтобы воссоздать хорошее меню, которое я жестко запрограммировал, но я не совсем уверен, понял ли я, как работает ходок.
По сути: это структура моего меню:
<ul class="desktop-menu">
<li>
<a class="menu-desktop-toplevel <?=($highlight == 'services') ? 'active' : ''; ?>" href="/services/">Services</a>
<ul class="dropdown-menu-desktop services-dropdown">
<li>
<ul class="dropdown-menu-desktop-column-one content-column">
<li class="third-level-sub-menu-desktop">
<p class="dropdown-menu-desktop-subhead">Inbound+</p>
<div class="sub-menu-underline"></div>
</li>
<li class="third-level-sub-menu-desktop">
<a class="menu-third-level-links" href="/services/inbound-marketing/">Inbound Marketing</a>
</li>
<li class="third-level-sub-menu-desktop">
<a href="/services/content-strategy-development/">Content Strategy</a>
</li>
</ul>
</li>
<li>
<ul class="dropdown-menu-desktop-column-two content-column">
<li class="third-level-sub-menu-desktop">
<p class="dropdown-menu-desktop-subhead">Lead Gen</p>
<div class="sub-menu-underline"></div>
</li>
<li class="third-level-sub-menu-desktop">
<a href="/services/education-lead-generation/">Education Lead Generation</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Теперь я работаю только с основной функцией для навигации WordPress, которая является довольно простой, но wp_nav_menu (), но я проиграл, когда читал навигацию по ходункам.
Моя цель довольно ясна: я просто хочу добавить класс к каждому элементу меню, как в цикле foreach, но я бы хотел сделать это внутри функции меню WordPress.
Это выполнимо? Может кто-нибудь предложить пример?
До сих пор я мог только настроить среду:
header.php
<?php
wp_nav_menu(array(
'menu' => 2, //menu id
'walker' => new Walker_Quickstart_Menu() //use our custom walker
));
?>
function.php
class Walker_Quickstart_Menu extends Walker {
// Tell Walker where to inherit it's parent and id values
var $db_fields = array(
'parent' => 'menu_item_parent',
'id' => 'db_id'
);
/**
* At the start of each element, output a <li> and <a> tag structure.
*
* Note: Menu objects include url and title properties, so we will use those.
*/
function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
$output .= sprintf( "\n<li><a href='%s'%s>%s</a></li>\n",
$item->url,
( $item->object_id === get_the_ID() ) ? ' class="current"' : '',
$item->title
);
}
}