Заменить меню Wordpress на ID (используя functions.php) - PullRequest
0 голосов
/ 25 февраля 2019

Я хотел бы заменить определенное меню на определенной странице, но не могу заставить его работать.

Вот что у меня есть в моих функциях. Php:

add_filter('wp_nav_menu_args', 'show_correct_main_menu');
function show_correct_main_menu($args) {
    if ( is_page(9424) ) {
        if ( $args['menu'] = '2' ) {
            $args['menu'] = '40';
        }
    }

    return $args;
}

Iпонятия не имею, почему это не работает.Для этого он заменяет ВСЕ меню на текущей странице - главное меню, меню в нижнем колонтитуле и т. Д. Я бы хотел заменить только меню с идентификатором 2.

.Есть ли способ указать, какое меню (по идентификатору) заменить?

В конечном итоге я хотел бы заменить несколько меню на этой странице, что-то вроде этого:

add_filter('wp_nav_menu_args', 'show_correct_main_menu');
function show_correct_main_menu($args) {
    if ( is_page(9424) ) {
        if ( $args['menu'] = '2' ) {
            $args['menu'] = '40';
        } elseif ( $args['menu'] = '5' ) {
            $args['menu'] = '31';
        }
    }

    return $args;
}

Если я нацеливаюсь на главное меню, используя $args['theme_location'], оно, кажется, работает, но я бы особенно хотел использовать идентификаторы меню.

1 Ответ

0 голосов
/ 25 февраля 2019

Я думаю, что вы пропустили равное назначение "=="

add_filter('wp_nav_menu_args', 'show_correct_main_menu');
function show_correct_main_menu($args) {
    if ( is_page(9424) ) {
        if ( $args['menu'] == '2' ) {
            $args['menu'] = '40';
        }
    }

    return $args;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...