Поддержка → Проблемы и решения → Автоматическое создание иерархического меню
Автоматическое создание иерархического меню
-
Всех приветствую!
Ребят, подскажите, пожалуйста, возможно ли сделать так, чтобы при добавлении элементов в меню через «Внешний вид» — «Меню» эти элементы автоматически образовывали структуру согласно иерархии страниц?
При добавлении выделенных элементов получаю меню 1-го уровня, хотя Наука должна включать Аспирантуру, Инновационную деятельность, Магистратуру.
Понимаю, что это драгами все в ручном режиме переставляется, но все-таки интересно возможно ли это настроить в автоматике.
Спасибо!
-
Понимаю, что это драгами все в ручном режиме переставляется, но все-таки интересно возможно ли это настроить в автоматике.
Вы понимаете, что создание меню таким образом — это ручное его создание? Соответственно для автоматического создания меню надо применять другие методы.
Для страниц это wp_list_pagesSeVlad, в header.php обнаружил wp_nav_menu(), но согласно описанию, это альтернатива.
Не могу понять, каким образом задается список страниц (их id), которые надо отображать в меню. Насколько помню, ранее для этого в WP был интерефейс, где задавались id, которые надо отправить в меню. Сейчас же такого обнаружить не могу… Где это могло спрятаться?
в header.php обнаружил wp_nav_menu(), но согласно описанию, это альтернатива.
Так и есть. Точнее обычно так делается. Если есть вручную созданное меню и помещено в соответствующую область темы (т.е. там где выводится эта функция), то оно и выводится. Иначе выводится или список страниц или список рубрик.
каким образом задается список страниц (их id), которые надо отображать в меню.
Описание функции почитайте.
Интересующие Вас параметры:
child_of — показывать дочек
depth — уровень вложенности.
exclude или include — взаимоисключающие параметры.Насколько помню, ранее для этого в WP был интерефейс, где задавались id, которые надо отправить в меню.
Не поленился и откатился на версию 2.8.4 с соответствующей версией темы F2. И действительно там можно было задавать исключаемые страницы в меню. Зачем такую фичу убрали — непонятно =/
SeVlad,
child_of — показывать дочек
depth — уровень вложенности.
exclude или include — взаимоисключающие параметры.— таких параметров у функции wp_nav_menu() не обнаружил.
Как я понимаю, надо копать в сторону wp_page_menu(), так?
таких параметров у функции wp_nav_menu() не обнаружил
Я говорил о списке страниц. Те wp_list_pages.
Пытаюсь понять как работает wp_nav_menu().
Если не указан параметр theme_location, то меню для вывода будет подбираться в следующем порядке:
1. Меню, подходящее по ID, слагу или описанию переданному в параметре ‘menu’ и если в этом меню есть хоть одна ссылка (один элемент);
2. иначе, первое не пустое меню;
3. или, выведет значение возвращаемое функцией указанной в параметре «fallback_cb» (по умолчанию там указано функция wp_page_menu);
4. если ничего не подошло, функция ничего и не выведетСейчас у меня в header.php сидит вот такое:
<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>
В «Внешний вид» — «Меню» я удалил все меню.Проверяю меню сайта — там автоматически создалось меню из первого уровня. Вопрос: почему? По вышеуказанному алгоритму должен был сработать пункт 3. Проверяю содержимое wp_page_menu в файле wp-includes/post-template.php:
function wp_page_menu( $args = array() ) { $defaults = array('sort_column' => 'menu_order, post_title', 'menu_class' => 'menu', 'echo' => true, 'link_before' => '', 'link_after' => '');
Судя по параметрам в меню должны отображаться все страницы, однако
SeVlad, т.е. Вы предлагает заменить wp_nav_menu на wp_list_pages? Я пробовал так, но wp_nav_menu все равно срабатывает, хотя я комментировал вызов данной функции в header.php, а после писал wp_list_pages (…).
Поэтому пытаюсь понять как работает wp_nav_menu().
Если не указан параметр theme_location, то меню для вывода будет подбираться в следующем порядке:
1. Меню, подходящее по ID, слагу или описанию переданному в параметре ‘menu’ и если в этом меню есть хоть одна ссылка (один элемент);
2. иначе, первое не пустое меню;
3. или, выведет значение возвращаемое функцией указанной в параметре «fallback_cb» (по умолчанию там указано функция wp_page_menu);
4. если ничего не подошло, функция ничего и не выведетСейчас у меня в header.php сидит вот такое:
<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>
В «Внешний вид» — «Меню» я удалил все меню.Проверяю меню сайта — там автоматически создалось меню из первого уровня. Вопрос: почему? По вышеуказанному алгоритму должен был сработать пункт 3. Проверяю содержимое wp_page_menu в файле wp-includes/post-template.php:
function wp_page_menu( $args = array() ) { $defaults = array('sort_column' => 'menu_order, post_title', 'menu_class' => 'menu', 'echo' => true, 'link_before' => '', 'link_after' => ''); ... }
Судя по параметрам в меню должны отображаться все страницы, однако
Проверяю меню сайта — там автоматически создалось меню из первого уровня. Вопрос: почему?
P.S. Просьба удалить предыдущее сообщение, накосячил.
Immick, извини, можно задать вопрос не в тему. У тебя при нажатии на родительские страницы в меню они открываются? Например, если нажать «Наука», не выбирая «Аспирантура» и пр., то что откроется — страница?
Egmalt,
если нажать «Наука», не выбирая «Аспирантура» и пр., то что откроется — страница?
Само собой. Откроется страница «Наука», т.к. это ссылка.
Спасибо. У меня просто с этим беда, но я уже понял, что тема виновата.:(
Egmalt, но вообще штука бесполезная (по крайней мере у меня), т.к. на родительских страницах тупо перечислены ссылки на дочерние 🙂 Так что в принципе можно ссылкой не делать, хотя не знаю возможно ли сделать родителя бессылочным, т.е. просто надписью.
Вы предлагает заменить wp_nav_menu на wp_list_pages?
Да.
Я пробовал так, но wp_nav_menu все равно срабатывает, хотя я комментировал вызов данной функции в header.php, а после писал wp_list_pages (…).
Покажите код как Вы делали.
Вопрос: почему?
В 371 (с 37 наверное. А мб и раньше), если я правильно понял, в произвольном меню по умолчанию создаётся меню из страниц (возможно только первого ур-ня).
Тут для меня новшество, в котором я не разбирался.
Я вообще противник создавать множество стат.страниц в ВП. В 90% случаев это говорит о неправильном планировании сайта.
- Тема «Автоматическое создание иерархического меню» закрыта для новых ответов.