Приветствую всех посетителей блога DmitriyZhilin.ru, в этой статье я расскажу вам о функции wp_list_categories, отвечающей за вывод категорий в WordPress. Данная функция позволяет нам в разном виде выводить рубрики наших сайтов без использования стандартного виджета «Рубрики».
Честно сказать, я не любитель ковыряться в коде, предпочитаю все специфические моменты в работе над своим блогом перекладывать на плечи профессиональных фрилансеров (найти их можно тут — Kwork). Однако жизнь заставляет порой сделать что-то самому, особенно если объем работ небольшой и прибегать к услугам программистов нецелесообразно.
Работа с функцией wp_list_categories как раз один из тех случаев. Данная функция позволяет нам легко, просто и, главное, быстро настроить вывод рубрик (категорий) сайта на WordPress так как нам удобно: сделать вывод определенных разделов или исключить лишнее, отсортировать по алфавиту, настроить внешний вид и еще много чего.
Я буду показывать применение wp_list_categories на своем блоге в сайдбаре, с помощью виджета «PHP-код», позволяющего выполнять команды языка PHP (добавляется плагином PHP Code Widget). В данный виджет я буду вставлять различные фрагменты кода, которые и позволят нам поэкспериментировать с выводом категорий.
Общие параметры функции
Итак, для того чтобы просто вывести перечень всех категорий достаточно вставить в виджет «PHP-код» вот такой код:
<?php wp_list_categories('arguments');?>
При использовании данной функции, по умолчанию в блоке категорий выводится стандартный заголовок.
Оформление данного заголовка редко вписывается в дизайн сайтов, поэтому его зачастую либо просто удаляют, либо изменяют.
Для этого в нашу функцию через символ & добавляется параметр title_li= . С помощью кода, приведенного ниже, заголовок просто удаляется:
<?php wp_list_categories('arguments&title_li=');?>
Для того, чтобы все-таки добавить заголовок в блок категорий, вы можете задать стандартным способом название самому виджету в который мы вставляем код или оформить его обычным HTML:
Также, как я уже сказал выше, с помощью того же параметра title_li= мы можем изменять заголовок рубрик. В этом случае код функции будет выглядеть следующим образом:
<?php wp_list_categories('title_li=Мои рубрики');?>
Блок категорий при использовании этого кода не будет отличаться от первоначального, только с другим текстом в первой строке.
Кстати, название блока категорий (в моем примере это фраза «Мои рубрики») также можно заключать в теги. Например, можно воспользоваться тегами выделения шрифта жирным или как заголовок, например:
<?php wp_list_categories('title_li=<h3>Мои рубрики</h3>');?>
Это позволит вам в некоторых случаях более удачно оформить свой блок категорий.
Вывод определенных категорий в WordPress
Едем дальше. С помощью функции wp_list_categories мы имеем возможность вывести только какие-то определенные категории в WordPress. Другими словами, мы можем указать какие конкретно категории нужно отобразить в блоке и сделать активными.
Дело в том, что каждая рубрика имеет свой индивидуальный id-номер. И выводить категории мы можем именно по этим самым номерам. Здесь читайте как посмотреть id категории в WordPress.
Чтобы указать id рубрик, которые мы хотим вывести нужно воспользоваться параметром include=. Вот как выглядит код, который отображает категории моего блога с id-номерами 80 и 91:
<?php wp_list_categories('include=80,91&title_li=');?>
В результате блок с рубриками выводит две категории «Как создать сайт самому» и «Вопросы и ответы», и соответственно выглядит так (не забываем что title_li= скрывает/изменяет стандартный заголовок тега):
Также wp_list_categories позволяет указать какие рубрики не нужно отображать в блоке. Для этого существует параметр exclude=. По аналогии с предыдущей функцией указываем в ней id тех категорий, которые мы не хотим выводить:
<?php wp_list_categories('exclude=80,91&title_li=');?>
Данным кодом я исключил все те же рубрики «Как создать сайт самому» и «Вопросы и ответы», в результате блок стал выглядеть так:
Вывод количества записей в рубрике
Кроме этого, с помощью данной функции можно указывать количество записей (статей), которые содержатся в той или иной категории. Здесь нам понадобится параметр show_count= :
<?php wp_list_categories('show_count=1&title_li=');?>
Использование данного кода придает блоку рубрик следующий вид:
Некоторым при использовании отображения количества записей в категориях не нравится скобки. Чтобы их убрать и выводить числа без скобок необходимо использовать такой код:
<?php $variable = wp_list_categories('echo=0&show_count=1&title_li='); $variable = str_replace(array('(',')'), '', $variable); echo $variable;?>
Скобки пропадут.
Сортировка категорий по алфавиту
На случай если категории в блоке выводятся без сортировки по алфавиту предусмотрен параметр orderby= . Чтобы рубрики выстроились по названию необходимо задать этому параметру значение name :
<?php wp_list_categories('orderby=name&title_li=');?>
У меня на блоге все рубрики изначально отсортированы по алфавиту, поэтому задавать этот параметр не нужно.
Ну что ж, теперь для закрепления информации давайте реализуем с помощью кода сразу несколько задач.
Использование wp_list_categories с комплексом параметров
Выведем только три рубрики с id 80 и 91, покажем сколько в этих категориях статей, уберем скобки вокруг цифры статей и зададим название блоку. Вот как в этом случае будет выглядеть код:
<?php $variable = wp_list_categories('echo=0&show_count=1&include=80,91&title_li=Рубрики сайта'); $variable = str_replace(array('(',')'), '', $variable); echo $variable; ?>
Этим кодом мы задали функции сразу несколько параметров и вот что получилось в результате:
Как вы заметили все параметры сработали и наш блок отобразился именно так, как мы и хотели.
Другие возможности wp_list_categories
Некоторым может показаться, что использовать wp_list_categories нет необходимости, ведь существует стандартный виджет «Рубрики». Отчасти да, применять на каждом шагу данную функцию смысла нет, но многие возможности в виджете не реализованы, кроме того, виджет работает только в сайдбаре, а с помощью функции вы можете делать вывод рубрик на страницу WordPress в любые места.
При работе над своим интернет ресурсом часто необходим особый подход к делу и реализация каких-то нестандартных задач. Поэтому информация о том, как можно гибко работать с различными функциями лишней не будет.
Те возможности данного тега, которые я привел в статье далеко не единственные. wp_list_categories обладает еще целым рядом параметров.
Например:
- параметрshow_option_all вырезает ссылки, т.е. он позволяет просто вывести список категорий вашего сайта без возможности перейти на страницу со статьями рубрик.
- hide_empty— этот параметр позволяет выводить/не выводить в блоке рубрики, в которых еще не опубликовано ни одной статьи.
- child_of— позволяет настраивать вывод подкатегорий одной или нескольких указанных категорий.
- number— дает возможность указать, сколько рубрик выводить в блоке.
Показывать и рассказывать обо всех возможностях функции wp_list_categories я не буду. Моя задача была рассказать вам, что такая функция есть, и ее легко можно применять при работе со своим сайтом.
Кому интересно узнать о всех возможностях этого тега, можете поискать информацию в интернете. Я уверен, сайтов, которые до винтиков разбирают функцию wp_list_categories будет много.
Подводя итог, могу сказать, что различных фишек, позволяющих расширить функционал наших с вами сайтов, огромное количество. И некоторые из них в той или иной ситуации могут облегчить нам работу.
О многих других интересных и полезных фишках я буду рассказывать в своих следующих статьях. Поэтому тем, кто серьезно занимается своим блогом я рекомендую подписаться на обновления.
А на сегодня всё, удачной работы!