Задать вопрос
  • Как заставить Polylang переводить два меню на Wordpress?

    Kachimov
    @Kachimov Автор вопроса
    медиа продакшн
    Писал на форум разработчика плагина, здесь, на stackoverflow - подобных вопросов куча, а вот ответов ноль. Копался неделю, в итоге методом тыка сделал.

    functions.php
    // Включаем поддержку меню
    add_theme_support( 'menus' );
    // Создаем меню
    function register_theme_menus() {
    	register_nav_menus(
    		array(
    			'primary'	=> __('Primary Menu', 'имявашейтемы'),
          'second' => __('Second Menu', 'имявашейтемы')
    		)
    	);
    }
    add_action('init', 'register_theme_menus');

    header.php
    // Создаем условие, 
    // если у нас 'главная страница', то загружаем меню 'primary'
    if (is_front_page()) {
      wp_nav_menu( array(
          'theme_location'        => 'primary',
          'menu_class'  => 'nav navbar-nav darka', #это стандартные стили bootstrap 3
          'container'   => 'false',
        ) );
    } 
    // в любом другом случае грузим меню 'second'   
    else {
      wp_nav_menu( array(
        'theme_location'        => 'second',
        'menu_class'  => 'nav navbar-nav darka', #это стандартные стили bootstrap 3
        'container'   => 'false',
      ) );   
    }

    Осталось правильно настроить меню в адмике WordPress, думаю с этим проблем уже не возникнет. Вот и всё. У нас получилось четыре работающих меню [меню на главной - рус], [меню на главной - англ], [меню блога - рус], [меню блога - англ].

    P.S. Для этого проекта мне это не нужно, но очень интересно как сделать эту структуру с тремя меню, пробовал это в самом начале, не получилось, отказался от такой страктуры, но задачка интересная - может как нибудь покапаюсь :)
    Ответ написан
    Комментировать