我想用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。