В моем проекте Symfony я пытаюсь использовать WordPress для бесплатного удобного менеджера контента. Моя проблема в том, что когда я пытаюсь открыть меню WordPress, например:
$menu = wp_nav_menu( array(
'menu_id' => 'top-menu',
) );
Элементы меню «Конечно» ссылаются на URL-адреса, например:
/wordpressfolder/page-item
И дело в том: как изменить это на:
/somethinganother/page-item
?
Я хочу сделать это, потому что я изменил стандартную маршрутизацию CMS, поэтому я должен быть последовательным, чтобы проект выглядел профессионально.
Конечно, я не возражаю против опции js, потому что она очевидна, но я хочу сделать это на сайте сервера, если это возможно.
Вы можете использовать один из фильтров WordPress. В следующем примере кода показан способ, которым вы можете использовать.
function mmn_main_item_rewrite( $items, $args )
{
foreach ( $items as $item ) {
$item->url = str_replace( 'wordpressfolder', 'somethinganother', $item->url );
}
return $items;
}
add_filter( 'wp_nav_menu_objects', 'mmn_main_item_rewrite', 10, 2 );
Просто добавьте этот кусок кода в файл functions.php в вашей активной папке тем WordPress. Всегда используйте дочерние темы WordPress для индивидуальных изменений.
Подробнее о хуке wp_nav_menu_objects в документации WordPress: https://developer.wordpress.org/reference/hooks/wp_nav_menu_objects/
Других решений пока нет …