Wordpress如何替换“”中的Strings/URL;wp_nav_menu”;输出或%3$s的东西



我目前使用的是:

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.comwww.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 );

最新更新