Изменение URL в wp_nav_menu Wordpress+Symfony

В моем проекте Symfony я пытаюсь использовать WordPress для бесплатного удобного менеджера контента. Моя проблема в том, что когда я пытаюсь открыть меню Wordpress, например:

    $menu = wp_nav_menu( array(
        'menu_id'   => 'top-menu',
    ) );

Элементы меню "Конечно" ссылаются на URL-адреса, например:

/wordpressfolder/page-item

И дело в том, как это изменить:

/somethinganother/page-item

?

Я хочу сделать это, потому что я изменил стандартную маршрутизацию CMS, поэтому я должен быть последовательным, чтобы проект выглядел профессионально.

Конечно, я не возражаю против варианта js, потому что он очевиден, но я хочу сделать это на сайте сервера, если это возможно.

1 ответ

Решение

Вы можете использовать один из фильтров 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/

Другие вопросы по тегам