将wp_nav_menu中的https替换为http


Replace https with http in wp_nav_menu

我想用http替换主菜单中的所有链接,只要它们是https

我已经尝试了下面的函数,但是没有效果

function wp_list_pages_custom() {
   $array = array();
   $pages = wp_nav_menu( array( 
      'menu'            => 'Main Menu', 
      'menu_id'         => 'menu',  
      'echo'            => true,
      'fallback_cb'     => 'wp_page_menu',
      'before'          => '',
      'after'           => '',
      'depth'           => 0
   ));
   $pages = str_replace('https', 'http', $pages);
   echo $pages;
}
function wp_list_pages_custom() {
$array = array();
$pages = wp_nav_menu( array( 
  'menu'            => 'Main Menu', 
  'menu_id'         => 'menu',  
  'echo'            => false,
  'fallback_cb'     => 'wp_page_menu',
  'before'          => '',
  'after'           => '',
  'depth'           => 0
));
$pages = str_replace('https', 'http', $pages);
echo $pages;
}

您设置了echo true,因此该函数处理输出

根据wp_nav_menu的文档,echo参数需要为false,以便获得刚刚返回而不是打印的菜单。现在你可能要打印两次菜单。您还应该检查该方法返回的是绝对url还是相对url。