Intereting Posts
Как настроить reset_url или $ reset_url meta_query с несколькими значениями WP_Editor – сохранение значения в опции плагина – снятие HTML-кода Категории продуктов не отображаются в качестве опции для создания меню скрыть меню администратора WordPress 3.1 get_categories иерархический порядок, например wp_list_categories – с именем, slug & link для редактирования cat Могу ли я заблокировать пост в позиции, поэтому он всегда появляется на главной странице? Как изменить положение метаданных WP по умолчанию? Правильный способ добавления таксономии к пользовательскому типу сообщения Лучшее действие для создания пользовательского сообщения и присвоение ему таксономических условий при активации плагина? Создание окна поиска слайдов в wordpress Найти собственный URL-адрес типа сообщения автором получить строку запроса запроса Изменение переменной запроса для поиска wordpress как добавить дополнительный мета-ящик или текстовое поле в настраиваемые типы сообщений

Как получить отдельное детское меню?

Не думал, что мне придется задавать этот вопрос. Но да, это правда. Кажется, у вас не может быть отдельного детского меню в WordPress?

Я абсолютно не новичок в WordPress. Работали и развивались в этом годами.

Тем не менее, можно было бы сделать большой проход, чтобы получить отдельное дочернее / подменю. Но то, что я хотел бы получить отсюда, больше похоже;

Правда ли, что нет простого встроенного решения?

Я действительно искал на этом сайте и других сайтах ответы, но изо всех сил пытался найти ответ. Кажется, это все о падениях. Я так устал от падения!

Могу сказать, что я тоже управляю Woocommerce. Но нет, в их документации тоже не было ответа. Много о «вторичных меню». Но это не то же самое. Мне нужны родительские отношения с дочерью.

РЕДАКТИРОВАТЬ:

В качестве примера сценария сценария был добавлен / изменен следующий пример кода и пример вывода:

Вот мой код:

<nav class="parent"> <?php wp_nav_menu( array( 'theme_location' => 'primary', 'container_class' => 'primary-navigation', ) ); ?> </nav><!-- #parent --> // Following menu should only be shown if the selected menu item from the above menu has child items. Show them here below. How do I make these two menus to have a connection to each other? <nav class="child"> <?php wp_nav_menu( array( 'theme_location' => 'primary', 'container_class' => 'primary-child-navigation', ) ); ?> </nav><!-- #child --> 

Результат будет примерно таким:


Главная | Сумки | Обувь | Головные уборы

Рюкзаки | Выходные сумки | Путешествия | Handhelds

И теперь мы находимся на странице Weekend Bag!


Просто как тот!

Изменить 2:

Первая проблема заключается в том, что атрибут depth не работает для wp_nav_menu() . Не может быть только верхнего уровня?

Solutions Collecting From Web of "Как получить отдельное детское меню?"

Что именно вы подразумеваете под отдельным детским меню? Не могли бы вы предоставить прецедент?

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

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

См. Следующее:

https://codex.wordpress.org/Class_Reference/Walker

Нашел решение . Поместите это в файл function.php :

 // add hook add_filter( 'wp_nav_menu_objects', 'my_wp_nav_menu_objects_sub_menu', 10, 2 ); // filter_hook function to react on sub_menu flag function my_wp_nav_menu_objects_sub_menu( $sorted_menu_items, $args ) { if ( isset( $args->sub_menu ) ) { $root_id = 0; // find the current menu item foreach ( $sorted_menu_items as $menu_item ) { if ( $menu_item->current ) { // set the root id based on whether the current menu item has a parent or not $root_id = ( $menu_item->menu_item_parent ) ? $menu_item->menu_item_parent : $menu_item->ID; break; } } // find the top level parent if ( ! isset( $args->direct_parent ) ) { $prev_root_id = $root_id; while ( $prev_root_id != 0 ) { foreach ( $sorted_menu_items as $menu_item ) { if ( $menu_item->ID == $prev_root_id ) { $prev_root_id = $menu_item->menu_item_parent; // don't set the root_id to 0 if we've reached the top of the menu if ( $prev_root_id != 0 ) $root_id = $menu_item->menu_item_parent; break; } } } } $menu_item_parents = array(); foreach ( $sorted_menu_items as $key => $item ) { // init menu_item_parents if ( $item->ID == $root_id ) $menu_item_parents[] = $item->ID; if ( in_array( $item->menu_item_parent, $menu_item_parents ) ) { // part of sub-tree: keep! $menu_item_parents[] = $item->ID; } else if ( ! ( isset( $args->show_parent ) && in_array( $item->ID, $menu_item_parents ) ) ) { // not part of sub-tree: away with it! unset( $sorted_menu_items[$key] ); } } return $sorted_menu_items; } else { return $sorted_menu_items; } } 

Затем используйте его так:

 <?php wp_nav_menu( array( 'theme_location' => 'primary', 'container_class' => 'primary-navigation', 'depth' => 1 ) ); wp_nav_menu( array( 'theme_location' => 'primary', 'container_class' => 'primary-child-navigation', 'sub_menu' => true ) ); ?> 

У меня была аналогичная проблема, и я был также удивлен, что WP не делает это легко. Я пробовал различные «скрипты функций», но у всех были проблемы. Питер. Я думал, что ваш сценарий здесь был тем, что мне нужно, но он, казалось, игнорировал вариант «заказа», который предлагает WP для каждой страницы.

Я закончил делать большую часть этого с помощью CSS, только с небольшим фрагментом PHP в page.php

 <?php if(!$post->post_parent){ $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); }else{ if($post->ancestors) { $ancestors = end($post->ancestors); $children = wp_list_pages("title_li=&child_of=".$ancestors."&echo=0"); } } if ($children) { ?> <ul> <?php echo $children; ?></ul> <?php } ?> 

Это основано на записи, сделанной Майком Ли . Очень просто и отлично работает для меня.