#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-адреса.