Заменить https на http в wp_nav_menu

#php #wordpress

#php #wordpress

Вопрос:

Я хочу заменить все ссылки в моем главном меню на 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;
}
  

Комментарии:

1. рассматривали ли вы возможность использования javascript?

Ответ №1:

 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, поэтому функция обрабатывает вывод

Ответ №2:

Согласно документации wp_nav_menu, параметр echo должен иметь значение false, чтобы меню просто возвращалось, а не печаталось. Итак, в настоящее время вы, вероятно, напечатали меню дважды. Вы также должны проверить, возвращает ли метод абсолютные URL-адреса или относительные URL-адреса.