我目前使用的是:
wp_nav_menu( array(
'theme_location' => 'primary',
'container' => false,
'items_wrap' => '<ul id="primary-main-menu" class="primary-main-menu-en">%3$s</ul>',
'fallback_cb' => false
));
然后我和自己的班级等一起得到了一份装饰精美的菜单。
但现在另一个更棘手的步骤是:
- 如何替换该菜单对象输出中的url链接?(要替换,例如:
www.domain1.com
到www.domain2.com
) - 换句话说,实际上我想替换
%3$s
里面的字符串。如何
注意:
我使用了walker
,但我不能将walker与items_wrap
选项一起使用,和/或输出失真。所以我放弃了walker
。有什么好主意吗?
不用定义自己的Walker类,只需使用过滤器walker_nav_menu_start_el
就可以挂接到默认的Walker中。在这里,您可以在输出链接HTML之前对其进行修改。
下面是您的用例的一个工作示例:
function mytheme_walk_nav_menu_items($output, $item, $depth, $args) {
if ( $args['theme_location'] === 'primary' ) {
$output = str_replace( 'www.domain1.com', 'www.domain2.com', $output );
}
return $output;
}
add_filter( 'walker_nav_menu_start_el', 'mytheme_walk_nav_menu_items', 10, 4 );