Поддержка Проблемы и решения Как вывести подменю отдельно от основного?

  • Есть меню такого типа
    menu

    Хочу вывести ,если есть, подменю в другом месте страницы. Мне нужно, что бы на всех дочерних рубриках, страницах и некоторых постах выводилось подменю.
    Данный код делает, то что нужно для страниц и подстраниц, а на рубриках не работает.
    Подскажите, как сделать что бы он работал и для рубрик с постами?
    Может есть другой вариант как это можно сделать?

    add_filter( 'wp_nav_menu_objects', 'wp_nav_menu_objects_filter', 10, 2 );
    
    function wp_nav_menu_objects_filter( $sorted_menu_items, $args ) {
        if ( 'Main' !== $args->menu ) {
            return $sorted_menu_items;
        }
      $items = array();
      $current_item = null;
    
      foreach ( $sorted_menu_items  as $item) {
        if ( in_array( 'current_page_item', $item->classes, true ) ) {
          $current_item = ($item->menu_item_parent) ? $item->menu_item_parent : $item->ID;
            continue;
        }
      }
    
      foreach ( $sorted_menu_items  as $item) {
    
        if ( $current_item && intval( $item->menu_item_parent ) === intval( $current_item )) {
          $items[] = $item;
          continue;
        }
      }
    
        return $items;
    }

    p.s. Вариант создавать новое меню через админку и выводит при соблюдении условий расматриваю как крайний вариант, так как прийдеться создать 9 меню и выводить не только в зависимости от категории но и учитывать язык.

    • Тема изменена 4 года, 3 месяца назад пользователем ek19.
    • Тема изменена 4 года, 3 месяца назад пользователем ek19.
Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Вариант создавать новое меню через админку и выводит при соблюдении условий расматриваю как крайний вариант, так как прийдеться создать 9 меню и выводить не только в зависимости от категории но и учитывать язык.

    Как я говорил на SO — непонятно почему это не устраивает.
    Я бы именно так и сделал. Меню — это та сущность которая должна ( как правило) формироваться и управляться через админку.

    Вывести же по разным условиям нужные меня и отдельные пункты совершено не проблема. Хоть функциями условий, хоть готовыми плагинами.
    https://wordpress.org/plugins/conditional-menus/
    https://wordpress.org/plugins/widget-options/
    https://wordpress.org/plugins/menu-items-visibility-control/
    и пр

    Вывести же по разным условиям нужные меня и отдельные пункты совершено не проблема.

    Как для разработчика это не проблема, меня это больше волнует со стороны пользователя.
    Плагин как альтернатива для проверок в шаблоне, но пользователю всеравно нужно будет разбираться и в этом и поддержке 9 меню.
    И еще интересует, почему данный пример кода работает для страниц(он выводит подменю), но если это рубрика он не выводит ничего.

    • Ответ изменён 4 года, 3 месяца назад пользователем ek19.

    Как для разработчика это не проблема, меня это больше волнует со стороны пользователя.

    Что Вы имеете ввиду под «стороной пользователя»? Создание сайта (в тч и управление меню) — это задача админа, а не пользователя.
    Кроме того, меню — это не тот элемент сайта, который требует сколь-нибудь частых изменений. Скорее дизайн сайта поменяется, чем меню.

    Но даже малограмотная в вебстроительсве секретарша в состоянии составить/изменить меню.


    Если же Вам нужен некий динамически формируемый список ссылок, то это вряд ли стоит делать через меню.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Как вывести подменю отдельно от основного?» закрыта для новых ответов.