问题不清楚,但wp_nav_menu()
有两个参数,允许您将类添加到输出中。例如
wp_nav_menu(
array(
\'container_class\' => \'conclass\',
\'menu_class\' => \'menclass\'
)
);
您可以使用
wp_nav_menu_args
还要过滤。
然而,我怀疑当你说“class”时,你使用了错误的术语,而你真正想做的是在导航菜单的开头添加一个列表项。您的筛选器非常接近:
function add_li_to_nav($items, $args) {
remove_filter(\'wp_nav_menu_items\', \'add_li_to_nav\', 10, 2);
$items = \'<li>SEARCH</li>\'.$items;
return $items;
}
add_filter(\'wp_nav_menu_items\', \'add_li_to_nav\', 10, 2);
这将在当前项之前添加“搜索”列表项,然后将其自身删除,以便“搜索”列表项不会添加到任何其他位置。
根据新信息更新:
到目前为止,最简单的解决方案是通过wp_nav_menu()
A.\'container\'=>false
参数,并将其余部分写入标记中。
<nav id="primary-navwrapper" class="pushy-right">
<!-- SO HERE RIGHT AFTER NAV PLACE THE FOLLOWING ANCHOR TAG -->
<a href="#">mobile</a>><?php
wp_nav_menu(
array(
\'container\' => false
)
); ?>
</nav><?php
另一种选择是过滤
wp_nav_menu
:
function add_anchor_to_nav($menu) {
remove_filter(\'wp_nav_menu_items\', \'add_anchor_to_nav\', 10, 2);
$pat = \'(<nav[^>]+?>)(.*)\';
$menu = preg_replace(\'|\'.$pat.\'|\',\'$1<a href="#">mobile</a>$2\',$menu);
return $menu;
}
add_filter(\'wp_nav_menu\', \'add_anchor_to_nav\', 10, 2);
wp_nav_menu(
array(
\'container\' => \'nav\'
)
);
regex
关于标记是危险的,但这相当简单。我认为它的表现会相对较好。