Список рубрик в разделе меню
-
Добрый день.
На одном из сайтов создано большое древо категорий разного уровня вложенности.При создании меню в админ панели нужно сохранить иерархию категорий при их выборе в левом окне блока Рубрики.
Постраничная навигация рубрик рушит все древо, это очень не удобно.
Есть ли возможность убрать постраничную навигацию в блоке accordion-section на странице создания меню?
Для наглядности структура меню:
Название марки авто
+ Запчасти
+ Аксессуары
Название марки авто 2
+ Запчасти
+ Аксессуарыт.к. древо разрушено, нет возможности определить какая категория с одним и тем же названием имеет родителя марки авто.
Спасибо
-
Нашел функцию wp_nav_menu_item_taxonomy_meta_box в файле /wp-admin/includes/nav-menu.php строка 837
$per_page = 50;
отвечает за количество отображаемых элементов.
Возможно ли подменить количество не вмешиваясь в этот файл?
Постраничная навигация рубрик рушит все древо, это очень не удобно.
Вы имеете ввиду в админке?
Почему рушит? Там всё иерархически. А кол-во отображаемых постов настраивается вверху, в настройках экрана.А возможно Вам будет удобен какой-нибудь плагин, для удобного управления постами\страницами. Их существует много самых разных с разными возможностями.
В админке на странице Внешний вид => Меню (/wp-admin/nav-menus.php)
На этой странице в настройках экрана нет опции для изменения количества отображаемых категорий в списке слева.
Думаю, что решения плагинами нет, т.к. в функции wp_nav_menu_item_taxonomy_meta_box переменная $per_page = 50; задана цифрой а не переменной.
Вариантов 3:
1. Заменить функцию wp_nav_menu_item_taxonomy_meta_box на свою (что не есть хорошо).
2. Заменить в функции wp_nav_menu_item_taxonomy_meta_box значение переменной на требуемое. Например: 500 (слетит при обновлении WP)
3. Надеяться, что опция изменения отображения количества рубрик на странице создания меню будет добавлена в следующих версиях.В админке на странице Внешний вид => Меню (/wp-admin/nav-menus.php)
Ааа. я значит неправильно понял (я подумал речь об иерархии на wp-admin/edit.php)
Вариантов 3:
4: создать отдельное меню для каждой рубрики.
5: использовать не меню (nav-menu), а список (wp_list_categories)
6: использовать не родное меню (nav-menu), а какой-нить плагин для создания меню.Хотя наверняка можно изменить кол-во выводимых пунктов, но я не подскажу готового решения, только напомню, что любую функцию ВП можно переопределить в functions.php активной темы.
Вариант 4
4. Изучить код, найти удачный хук[1] и изменить значение на свое.И лесом обновления, полное переписывание функций и ожидание следующей версии 🙂
—
[1] Предположу, что этот можно применить (1291 строка) http://core.trac.wordpress.org/browser/tags/3.7.1/src/wp-includes/taxonomy.php#L1254Спасибо, но это не решает проблемы описанной выше.
Да, более правильным будет переопределить функцию. Но при каждом обновлении WP придется следить за тем, не изменилась ли функция. В случаи ее изменения менять свою функцию которой я заменил стандартную. А если сайтов 10-20. Менять везде функцию вручную? 🙂 нет спасибо.
Проблема не в выводе меню или его построении. А в неудобстве добавлять рубрики в меню. т.к. постраничная навигация дробит иерархию.
Спасибо, но это не решает проблемы описанной выше.
В смысле не решает? Пробовали уже?
В красном круге то как есть, в зеленом после изменения значения переменной $per_page
http://habrastorage.org/storage3/71b/75a/664/71b75a6649a5a3d3ef2d40ef0f235346.jpgwikicms, не успел вам ответит 🙂
get_terms — Получает все элементы (термины) указанной таксономии.
Предложенная вами функция никак не может повлиять на результат работы функции которая выводит список категорий в разделе создания меню.Ну вот, я же говорил, что фильтр сработает.. Поздравляю!
В красном круге то как есть, в зеленом после изменения значения переменной $per_page
Так вот Вы о чём!
Так как по мне скролить и выискивать гораздо сложнее, чем использовать поиск — он же сразу показывает нужное.Да и вообще — Вы меню каждый день исправляете, что это доставляет неудобства? Что-то мне подсказывает — не там Вы проблему нашли 🙂
Предложенная вами функция никак не может повлиять на результат работы функции которая выводит список категорий в разделе создания меню.
Ну раз вы так уверены, тогда я пас 😉
SeVlad, Если бы сайтом пользовался я 🙂 Структура сайта построена таким образом, что для каждой марки автомобиля есть одинаково названные рубрики. Поиск не поможет.
wikicms, возможно я чего то не знаю, не могли бы вы более подробно описать, как можно повлиять на переменную $per_page = 50; в массиве $args ?
Код начала функции которая выводит список категорий на странице создания меню:
function wp_nav_menu_item_taxonomy_meta_box( $object, $taxonomy ) { global $nav_menu_selected_id; $taxonomy_name = $taxonomy['args']->name; // paginate browsing for large numbers of objects $per_page = 50; $pagenum = isset( $_REQUEST[$taxonomy_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1; $offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0; $args = array( 'child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false, ); $terms = get_terms( $taxonomy_name, $args );
как можно повлиять на переменную $per_page = 50; в массиве $args ?
Обратить внимание на ссылку, которую я дал. Надеюсь, сможете найти доки по использованию фильтров. Там просто, как дважды два.
как можно повлиять на переменную $per_page = 50; в массиве $args ?
Фильтром на хуке ‘get_terms_args’?
Структура сайта построена таким образом
Я о том же — неправильная структура.
Но даже если отбросить этот факт (переделывать, как я понимаю, никто не будет), то всё равно
а) «меню» (на сайте) можно переделать таким образом, что бы не возникала надобность его регулярно исправить.
б) скролить и выискивать нужное в таком маленьком окошке — это же полнейшая жуть.Отсюда — либо переделать меню, либо улучшить визуализации выдачи при поиске (чтобы показывалась иерархия найденного). Возможно для последнего есть плагины, но мне не попадались.
Или, что вообще легко решает множество проблем:
6: использовать не родное меню (nav-menu), а какой-нить плагин для создания меню.
Зы. сорри что несколько не по теме, но расценивайте это как попытку помочь искоренить причину протечки, а не совет «чем залатать дырки».
- Тема «Список рубрик в разделе меню» закрыта для новых ответов.