Как вывести список подкатегорий

Содержание
  1. Вывод списка рубрик (категорий) на WordPress. Функции их аргементы и примеры использования.
  2. Функция wp_list_categories()
  3. Пример 1. Сортировка по ID.
  4. Пример 2. Удаляем заголовок списка рубрик.
  5. Пример 3. Вывод только дочерних пунктов одной из категорий.
  6. CSS классы
  7. Функция get_categories()
  8. Пример 4. Вывод ссылок на категории через запятую (в том числе будут включены и пустые).
  9. wp_list_categories() WP 2.1
  10. Возвращает
  11. Использование
  12. Шаблон использования
  13. Аргументы передаваемые параметру $args
  14. Примеры
  15. #1 Сортировка по алфавиту
  16. #2 Сортировка по названию
  17. #3 Уберем заголовок списка категорий
  18. #4 Выводим только указанные рубрики
  19. #5 Выведем только дочерние категории
  20. #6 Удалим скобки, в которые обрамляется количество записей в каждой категории
  21. #7 Покажем список категорий со ссылкой на RSS-ленту
  22. #7.1 Если нужно показать ссылку-картинку вместо текста ссылки RSS фида, то используем параметр feed_image :
  23. #8 Выводим список произвольной (пользовательской) таксономии
  24. #9 CSS классы для стилизации li списка
  25. Заметки

Вывод списка рубрик (категорий) на WordPress. Функции их аргементы и примеры использования.

Иногда перед разработчиками стоит задача вывести блок со списком рубрик на сайте на WordPress. Зачастую такие блоки вставляют либо на главной странице сайта, либо же в сайдбаре. Использовать стандартный виджет не очень удобно, так как у него нет настроек, а вам, например, нужно отсортировать, скрыть определенные рубрики, стилизировать, вывести дочерные рубрики и задать прочие параметры, чтобы получить результат как на макете дизайна. Конечно же, можно поискать плагины в репозитории, по типу «NS Category Widget», где есть дополнительные настройки для виджетов, но в этой статье мы рассмотрим, как реализовать такой функционал с помощью встроенных функций WordPress.

Функция wp_list_categories()

Для вывода списка категорий WordPress в виде ссылок используеться встроенная функция WordPress — wp_list_categories().

Читайте также:  Чистим катализатор своими руками

Пример кода, в котором для данной функции задается набор аргументов.

Аргументов, которые можно задать много, давайте рассмотрим те, которые чаще всего используются на практике.

  • child_of – параметр, который указывает, отображать ли дочерние категории рубрик.
  • depth – задает глубину вложенности категорий. По дефолту параметр «0», что означает вывод всех категорий. «1» — выведет только рубрики первого уровня. «n» — произвольное число вложенности, например, задав «2», вы ограничите вывод рубрики только первого и второго уровня вложенности. «-1» — показывать все категории, в том числе и дочерние в одном формате с родительскими, без системы вложенности.
  • echo. Указывает выводить ли результат функции на экран, либо же просто возвращать его для последующей обработки. Варианты значений: «1» (true) – выводить, «0» (false) – не выводить, а просто вернуть данные.
  • exclude – задаются id категорий через запятую, которые нужно исключить из списка вывода.
  • include – также, задаются id рубрик через запятую, только уже тех, которые нужно вывести на сайте, остальные выводиться не будут.
  • hide_empty – указывает выводить или нет пустые категории, к которым не привязана ни одна запись.
  • hierarchical – показывать ли рубрики в виде вложенных списков в формате родительские и дочерние категории (древовидный вид).
  • order – направление сортировки в списке категорий. Два параметры «ASC», от меньшего к большему, например (1, 2, 3), «DESC» наоборот, от большего к меньшему (3, 2, 1).
  • orderby – параметр, по которому будет сортироваться ваш список рубрик. Возможные значения: «ID», «name» (названию), «slug» (по url, который вы задаете в админке), «count» (по количеству постов в категории), «term_group» (по группе). По-умолчанию сортировка идет по названию.
  • separator – код разделителя между элементами списка.
  • show_count – определяет отображать или нет количество записей в каждой категории. Число выводиться в скобках возле каждой ссылки. Значения: «1» (true) показывать, «0» (false) не показывать.
  • style – стиль вывода рубрик. Тут возможные значения: «list» — выводит ссылки рубрик в виде списка (
  • ), соблюдает вложенность; «none» — выводит только ссылки (), разделенные тегом (
    ).
  • taxonomy – определяет таксономию, с которой мы хотим работать, например «category».
  • title_li – параметр, где задается заголовок списка. Если в качества значения для этого параметра задать пустые кавычки, то значение выводиться не будет. По умолчанию – «Категории».
  • number – задает максимальное значение выводимых категорий. По дефолту выводятся все рубрики WordPress.
  • pad_counts – подсчет всех постов дочерних категорий и вывод числа с их количеством возле родительской категории.
  • walker — расширение объекта (класса), который предназначен для создания списка категорий.
Читайте также:  Как чистить ковер сода уксус порошок

Теперь, давайте рассмотрим конкретные примеры использования данной функции на практике.

Пример 1. Сортировка по ID.

Нужно вывести список рубрик в WordPress, отсортировать их по ID и исключить из списка несколько категорий.

Данный код отсортирует рубрики по ID и скроет вывод рубрик с ID 4 и 7.

Пример 2. Удаляем заголовок списка рубрик.

В этом примере мы указываем пустое значение для параметра title_li, которое и отвечает за заголовок блока, также мы задаем нужный нам список ID рубрик (2, 6), которые мы хотим выводить в этом блоке с помощью параметра include.

Таким образом, с помощью include вы полностью можете контролировать, какие из рубрик выводить, а какие нет.

Пример 3. Вывод только дочерних пунктов одной из категорий.

Задача: вывести дочерние рубрики, вложенные в категорию с отсортировать их по количеству постов, задать направление сортировки.

Тут, параметр child_of=2 и указывает, из какой категории брать вложенные пункты.

CSS классы

Функция wp_list_categories() при использования вывода в виде списка создает следующую структуру классов для стилизации блока.

Функция get_categories()

Второй вариант вывода списка рубрик в CMS WordPress – это использование функции get_categories(), которая возвращает массив, состоящий из объектов категорий (или других таксономий), удовлетворяющих заданным разработчиком критериям. Каждый объект содержит данные о категории: ID, название, уровень вложенности и прочее.

Код примера использования:

Пример 4. Вывод ссылок на категории через запятую (в том числе будут включены и пустые).

Для вывода ссылок на страницы рубрик, можно также использовать функции: get_category_link() или get_term_link().

Таким образом, используя функцию wp_list_categories(), которая помогает вывести как все, так и определенные рубрики, а также функцию get_categories(), которая помогает получить объекты всех рубрик для последующей работы с ними, можно реализовать кастомный блок с категориями на сайте на WordPress. Еще больше аргументов для функций для реализации гибкой настройки функций вы можете найти в кодексе данной CMS.

Источник

wp_list_categories() WP 2.1

Выводит список категорий в виде ссылок. Если перейти по ссылке, то будут показаны все посты из категории.

Хуки из функции

Возвращает

null|Строку|false . HTML код если echo=1 . Если echo=0 вернет HTML код в переменную для дальнейшей обработки.

Использование

Шаблон использования

Аргументы передаваемые параметру $args

Кроме указанных ниже параметров может принимать параметры get_terms().

  • child_of (число)
  • current_category (строка/массив)
  • depth (число)
  • echo (логический)
  • exclude (строка)
  • exclude_tree (строка)
  • include (строка / массив)
  • hide_empty (логический)
  • hide_title_if_empty (логический)
  • hierarchical (логический)
  • order (строка)
  • orderby (строка)
  • separator (строка)
  • show_count (логический)
  • show_option_all (строка)
  • show_option_none (строка)
  • style (строка)
  • taxonomy (строка)
  • title_li (строка)
  • use_desc_for_title (логический)
  • number (число)
  • pad_counts (логический)
  • feed (логический)
  • feed_type (строка)
  • feed_image (строка)
  • walker (объект)

child_of(число) Показать дочерние категории. В параметре указывается ID родительской категории (категория, вложенные категории которой нужно показать). current_category(строка/массив)

ID категории или массив из ID. К которым нужно добавить класс current-cat (class=»current-cat»). Это нужно, чтобы подсветить категорию через CSS стили.

В нормальном режиме такой класс добавляется к текущей категории на странице категорий. Этот параметр нужен, чтобы, например, добавить этот класс на отдельных страницах, которые не относятся к текущей категории.

С версии 4.4. в этот параметр можно передавать массив ID.
По умолчанию: »

Этот параметр контролирует глубину вложенности категорий, которые будут показаны. По умолчанию 0 — показывать все уровни вложенности (все дочерние категорий). С версии 2.5.

  • 0 — все уровни вложенности (По умолчанию);
  • -1 — показать все дочерние категории, но без вложенности li списков. Отменяет параметр hierarchical ;
  • 1 — показать только категории первого уровня (все виды вложенных категорий не будут показываться);
  • n — число — глубина вложенности которую нужно показывать. 2 — покажет категорий первого и второго уровня.

меню echo(логический)

Выводить на экран или возвращать для обработки.

  • 1 (true) — да, выводить на экран;
  • 0 (false) — нет, просто возвратить данные.

По умолчанию: true

Исключить категории из списка. Нужно указывать ID категорий через запятую.

  • Если этот параметр указан, параметр child_of будет отменен.
  • Если параметр heiararchical=true , то будет исключаться вся ветка. Если heiararchical=false , то для исключения ветки используйте параметр exclude_tree .

exclude_tree(строка) Исключить дерево категорий из списка. Указывайте ID категорий через запятую. Параметр include должен быть пустым. Если параметр heirarchical=true , то используйте exclude вместо exclude_tree .
По умолчанию: » include(строка / массив) Вывести списком только указанные категории. Список ID категорий проходит через wp_parse_id_list, поэтому можно указывать ID строкой через запятую или массивом.
По умолчанию: » hide_empty(логический)

Скрывать ли категории в которых нет записей?

  • 0 (false) — показывать пустые (не скрывать);
  • 1 (true) — не показывать пустые категории (скрывать).

hide_title_if_empty(логический) Нужно ли прятать $title_li если в списке нет элементов. С версии 4.4.
По умолчанию: false (всегда будет показываться) hierarchical(логический)

Показывать категории как дерево. Показывать вложенные (дочерние категории), как вложенный список.

  • 1 (true) — да, древовидный тип отображения;
  • 0 (false) — нет, показать сплошным типом.

По умолчанию: true

  • ASC — по порядку, от меньшего к большему (1, 2, 3; a, b, c);
  • DESC — в обратном порядке, от большего к меньшему (3, 2, 1; c, b, a).

Сортировка списка по определенным критериям. Например по количеству постов в каждой категории или по названию категорий. Доступны следующие критерии:

  • ID — сортировка по ID;
  • name — сортировка по названию (по умолчанию);
  • slug — сортировка по алт. имени (slug);
  • count — по количеству записей в категории;
  • term_group — по группе.

По умолчанию: ‘name’

separator(строка) Разделитель между элементами. С версии 4.4.
По умолчанию: ‘
show_count(логический)

Показывать/нет количество записей в категории. Число записей будет показано после названия категории в скобках (например, Психология (16)).

  • 1 (true) — показывать количество записей;
  • 0 (false) — не показывать количество записей.

show_option_all(строка)

Текст для отображения всех категорий.

Если передать не пустую строку, например ‘Все категории’ , то в список будет добавлена ссылка на все категории (часто это ссылка на главную страницу блога). Текстом ссылки станет текст переданный параметру, в данном случае Все категории .
По умолчанию: »

show_option_none(строка) Если функция не нашла ни одной категории для показа, то будет показан этот текст.
По умолчанию: ‘Нет рубрик’ style(строка)

Стиль вывода списка.

  • list — означает, что нужно выводить списком в теге
  • , вложенность категорий будет соблюдена.
  • none — будут выведены только ссылки на категории ( ) разделенные тегом
    .

По умолчанию: ‘list’

taxonomy(строка) Название таксономии, которую нужно обрабатывать.
По умолчанию: ‘category’ title_li(строка) Установить заголовок списка. Если изменить этот параметр на » ( title_li= ), то заголовок не будет выводиться вовсе.
По умолчанию: ‘Категории’ use_desc_for_title(логический)

Вставлять ли описание категории в атрибут title у ссылки ( ):

  • 1 (true) — да, вставлять описание в title, если оно есть;
  • 0 (false) — нет, не использовать описание (будет: Посмотреть все записи в рубрике «название категории»).

По умолчанию: true

number(число) Установить максимальное количество отображаемых категорий (SQL LIMIT). По умолчанию выводится без ограничений.
По умолчанию: » pad_counts(логический) Считать общее количество постов во вложенных категориях и показывать это число рядом с родительской категорией. Параметр включается автоматически при включенных show_count и hierarchical .
По умолчанию: 0 (false) feed(логический) Показать ли рядом с названием ссылку на RSS фид (rrs-2) категории. Текст переданный в этом параметре станет текстом ссылки.
По умолчанию: » feed_type(строка) Тип фида
По умолчанию: ‘rss-2’ feed_image(строка) Показать ли рядом с названием ссылку-картинку на RSS фид (rrs-2) категории. В параметре нужно указать ссылку на картинку. Если этот параметр указан, параметр $feed будет отменен.
По умолчанию: » walker(объект) Расширение объекта (класса), который предназначен для создание списка категорий. Передаваемый параметру объект — это расширение для класса Walker_Category или Walker .
По умолчанию: ‘Walker_Category’

Примеры

#1 Сортировка по алфавиту

Для того, чтобы отсортировать категории по алфавиту (orderby=name) и включить в список только категории с ID равными 16, 3, 9 и 5 (include=3,5,9,16), можно использовать следующий код:

#2 Сортировка по названию

Следующий пример сортирует категории по названию ( orderby=name ), показывает количество записей в каждой категории ( show_count=1 ) и исключает из списка категорию с ID 10 ( exclude=10 ):

#3 Уберем заголовок списка категорий

С помощью обнуления параметра title_li . По умолчанию этот параметр равен __(‘Categories’) , если установить его в null или » , заголовок списка не будет показан вообще. Следующий пример исключает категории 4 и 7, и убирает заголовок списка категорий:

#4 Выводим только указанные рубрики

Этот пример покажет список только из категорий с ID 9, 5 и 23, и изменит заголовок списка на Поэзия , который будет заключен в теги

#5 Выведем только дочерние категории

Для того, чтобы вывести только категории вложенные в категорию 8 (child_of=8) и отсортировать их по ID (orderby=id), так же показать количество записей в каждой категории (show_count=1) и убрать из атрибута title описание категорий (use_desc_for_title=0) используйте следующий вызов функции wp_list_categories :

#6 Удалим скобки, в которые обрамляется количество записей в каждой категории

Для этого получим список категорий в переменную (echo=0) и пропустим её через php функцию str_replace() , которая удалит скобки:

#7 Покажем список категорий со ссылкой на RSS-ленту

Для этого используем параметр feed=RSS , так же в этом примере список будет отсортирован по названию категорий (orderby=name) и у каждой категории будет показано количество записей (show_count=1):

#7.1 Если нужно показать ссылку-картинку вместо текста ссылки RSS фида, то используем параметр feed_image :

#8 Выводим список произвольной (пользовательской) таксономии

С версии 3.0 стало возможно выводить списки произвольных таксономий через параметр taxonomy . Так же в этом примере показывается как передавать параметры не строкой, а массивом:

#9 CSS классы для стилизации li списка

CSS Классы создается автоматически функцией wp_list_categories() . Начальное обрамление (в тег ul) задается произвольно, поэтому класс списку можно задать произвольный. А для li тега используются следующие css классы:

Заметки

Добавленные параметры в разных версиях:

  • 2.3.0 — echo
  • 2.5.0 — depth
  • 2.6.0 — current_category
  • 2.7.1 — exclude_tree
  • 2.9 — pad_counts
  • 3.0 — taxonomy
  • 4.4 — hide_title_if_empty и separator . current_category стал не обязательным

Источник

Оцените статью