Начав настраивать WordPress под себя столкнулся с несколькими вопросами, один из них был такой: «Каким образом можно упорядочить рубрики (категории) в WordPress?«. Покопавшись в интернете нашел несколько решений данного вопроса.
Решение 1. Плагин MY Category Order.
Если вы не разбираетесь в php и плохо знаете саму структуру WordPress, то оптимальным для вас будет установка плагина. Наиболее популярным является
Решение 2. Wp_list_categories для WordPress.
Установив данный плагин у себя я с интересом увидел что он… не работает (скорее всего просто моя тема ему не подошла). Выяснять истинную причину и копаться в коде плагина особого желания не было, поэтому я пошел другим путем, а именно изменением PHP кода самого движка WordPress. И так.
За вывод списка рубрик в WordPress отвечает функция wp_list_categories, если вы хотите редактировать свою тему то необходимо править файл sidebar.php в папке с темой, если сам движок, то функцию ищем файл wp-includes/default-widgets.php.
Аргументы функции wp_list_categories:
- orderby — устанавливает сортировка по категориям, может быть равна id (сортирует по id рубрки), name (по имени), slug (по ярлыку), count (по количеству записей);
- order — устанавливает порядок сортировки, значения — ASC (прямой порядок), DESC (обратный порядок);
- title_li — задает заголовок для списка рубрик;
- number — ограничивает количество выводимых рубрик;
- show_count – выводит количество статей в рубрике;
- show_last_updated – выводит дату последнего обновления;
- hide_empty – скрывать пустые рубрики;
- hierarchical – влияет на то будит ли список иерархическим или нет — True (иерархический), False (не иерархический);
- use_desc_for_title — выводит описание рубрики в качестве ее заголовка;
- include – выводит в список только указанные рубрики (указывается id рубрик через запятую);
- exclude – обратный параметр, исключает из списка, указанные рубрики;
- exclude_tree – исключения указанную ветку рубрики;
- child_of – вывод только под рубрики для заданной родительской рубрики;
- depth – указывает количество уровней для под рубрик для вывода;
- style – задает стиль оформления, значения — list (список), none (переход строки);
- show_option_all – отображает ссылка на все рубрики, если в качестве стиля отображения выбран список;
- feed – отображение ссылку на wordpress rss фид для категорий;
- feed_type – тип фида;
- feed_image – картинка для значка rss;
- echo – выводит рубрики, по умолчанию равен True.
Аргументы в функции разделяются знаком & (and).
Несколько примеров использование функции wp_list_categories для WordPress:
wp_list_categories('orderby=id&show_count=1&title_li=');
Функция выведет список рубрик отсортированных по id, с количеством постов для каждой рубрики и с пустым заголовком списка.wp_list_categories('orderby=count&order=desc&exclude=1,2,3');
Функция выведет список рубрик отсортированных по количеству постов в рубрики, начиная с самого меньшего количества, в список не попадут рубрики id которых равны 1,2 и 3.
В сети так же встречались рекомендации по исправлению php кода в файле wp-include/category.php, но они распространяются только если происходит кривая сортировка из-за использования UTF-8.
В моем случае в файле sidebar.php я просто не обнаружил эту функцию и пришлось править сам движок, результат вы видите на сайте.