Поддержка → Проблемы и решения → Удалить пустые категории из wp_nav_menu
Удалить пустые категории из wp_nav_menu
-
А может и не так вопрос надо было поставить. В общем, задача — создать динамичное меню, чтобы оно автоматом включало в себя лишь те рубрики, в которых есть записи. Страницы и ссылки, само собой, добавлять в него надо будет по-прежнему вручную. Но вот имена непустых рубрик хотелось бы автоматом.
Тривиальная задача, но Гугл молчит.
-
задача не тривиальная, поэтому гугл и молчит.
мой вам совет — не включайте в меню рубрики, в которых нет записей.Flector, совет странный, как минимум. От автоматизации обычно ждёшь автоматизма, а не поставки ручных рубильников.
совет странный, как минимум. От автоматизации обычно ждёшь автоматизма,
Странно ждать автоматизация в чём-то, вручную составленном.
Хотя в данном случае мб и можно реализовать хотелку.. Я не интересовался
Хотелки — это вручную созданные меню для конкретных сайтов, кастомизированные. Их больше никуда не применишь. Другая клиника — это плагины. Тоже по хотелке сделанные. А автоматизация универсального функционала CMS по реализации меню — это его расширение, годное для любого проекта и удобное для любого пользователя.
это в виджетах рубрик можно не выводить рубрику, в которых нет записей. потому что это виджет рубрик.
а меню это ссылки, которые проставляет пользователь. проставил ссылку на пустую рубрику — будет такая ссылка. ваша хотелка это не делать то, что хочет сделать пользователь.
Flector, все в курсе разницы между Рубрикатором и Меню. Как и нелогичной разницы в функционале их автоматизации.
Нет моей хотелки в том, что вы решаете за пользователя — иметь ему автоматизацию в меню, либо не иметь. Хотите доказать, что такая автоматизация — это неудобство и бесполезность? Докажите всему Гуглу и данному форуму: вопрос задан и был обсужден не единожды — как там, так и здесь, годы подряд. Но разрабами Вордпресса так и не услышан.
Придумайте — как реализовать в интерфейсе настройки меню один единственный чекбокс «Скрывать из меню рубрики без записей».
Скрывать из меню рубрики без записей
Можно добавить фрагмент в
functions.php
активной темы:function hide_empty_terms_from_nav_menu( $menu_items, $args ) { foreach ( $menu_items as $key => $item ) { if ( 'taxonomy' !== $item->type ) { continue; } $term = get_term_by( 'id', $item->object_id, $item->object ); if ( ! $term || ! $term->count ) { unset( $menu_items[ $key ] ); } } return $menu_items; } add_filter( 'wp_nav_menu_objects', 'hide_empty_terms_from_nav_menu', 10, 2 );
кому-то что-то доказывать — это смешно.
давно бы уже написали свою собственную функцию по вывода меню, не трогая стандартное произвольное меню.Sergey Biryukov, отлично работает. То, что нужно. Попиарю решение, а то повсюду в интернетиках валяются незакрытые темы по проблеме.
Flector, в этом и смысл — расширить функционал стандартного меню, никак его не трогая. Вам, без смеха, это только что доказали. Пользуйтесь.
- Тема «Удалить пустые категории из wp_nav_menu» закрыта для новых ответов.