Главная
Wordpress
Как вывести подрубрики на странице рубрик в WordPress?
  • 100
  • 2
  • Рубрика: Wordpress

Как вывести подрубрики на странице рубрик в WordPress?

Как вывести подрубрики на странице рубрик в WordPress?

Доброго времени суток. 🙂

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

Последний сайт, на котором я применил данный метод был о фермерстве и готовый результат там выглядел примерно так:

подрубрики WordPress

Чтобы получить такой результат нужно в первую очередь определить где у вас выводится список записей из определенной рубрики. Чаще всего это файл - category.php, так же бывают темы, где вывод записей рубрики объединен с архивами, тогда это файл - archive.php.. Все зависит от конкретной темы и цикл записей рубрики, может быть совсем в другом файле. Вы должны найти такой файл и перед циклом записей разместить следующий код:

<?php
if (is_category()) {
if (count(get_categories('child_of='.$cat)))
echo '<ul class="sub_categories">';
$current_cat=get_query_var('cat');
wp_list_categories('child_of='.$current_cat.'&title_li=&show_count=0'); 
echo '</ul>';
}
?>

Давайте рассмотрим код поближе, чтобы разобрать, за что отвечает каждая строка:

  • <?php ... ?> - Как видите по коду, наш код мы обернули в теги PHP, для того чтобы добавить код в среду HTML. Если же вам надо будет добавить его в PHP то удалите их.
  • if (is_category()) { - Проверяем размещен ли данный код на странице категории, если да то продолжаем обработку кода, в противном случаи ничего не произойдет.
  • if (count(get_categories('child_of='.$cat))) - Вторая проверка на то, есть ли у рубрики подрубрики. Если таковых нет, то в месте куда вы добавили код ничего не добавится.
  • echo '<ul class="sub_categories">'; - Оборачиваем наши подрубрики в теги списка, для того чтобы потом задать стили. Если вы хотите выводить не списком или поменять классы, можете удалить или переименовать.
  • $current_cat=get_query_var('cat'); - создаем переменную, которая узнает в какой категории мы находимся.
  • wp_list_categories('child_of='.$current_cat.'&title_li=&show_count=0') - запускаем функцию для вывода рубрик, в данном случаи подрубрик. Осуществляется это благодаря параметрам заданным в ней:
    1. child_of='.$current_cat.' - параметр что и указывает рубрику, подрубрики которой выводить.
    2. title_li= - запрещаем выводить заглавие для списка подрубрик.
    3. show_count=0 - Настраиваемый параметр, что означает - выводить ли рядом с названием подрубрики количество записей в ней. 0 - не выводить. 1 - выводить.
  • echo '</ul>'; - закрываем наш список.

Чтобы это выглядело как на картинке выше, нужно задать стили.

.sub_cat{margin:35px 0;}
.sub_cat li{display:inline-block;width:24%;vertical-align:top;margin-bottom:5px;}
.sub_cat a{display:block;font-size:18px;background:#111;color:#fff;padding:5px;text-align:center;}
.sub_cat a:hover{background:#009b00;color:#fff;}

Можете их менять и задавать согласно своим требованиям. Весь данный код очень простой и настроить его на своем сайте не должно составить труда. Самое сложное, наверное, найти правильное место.

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

На этом все, спасибо за внимание. 🙂




Если Вам был полезным мой труд, можете поддержать сайт :)


Оцените статью
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 2, в среднем: 5 из 5

Опубликовано 2 комментария

  • Boris
    Комментариев: 1

    Спасибо за статью очень помогло! Но еще хотелось бы знать как сделать что бы на странице подрубрики (дочерней категории) список дочерних рубрик не пропадал. Смысл вот в чем. Есть главная рубрика, в ней есть дочернее (например Статьи - О машинах, О мотоциклах, О велосипедах) Так вот когда находишься в родительской рубрики и на странице поста этот список есть, а когда находишься в дочерней категории (например О мотоциклах) то список пропадает. Подскажите как оставить этот список вместе с условием if (count(get_categories('child_of='.$cat))) потому что если его убрать то в категории в которой нет дочерних подкатегорий будет выводится надпись Рубрики нет Подскажите как можно избавиться от этой надписи.

    • Виталий
      Комментариев: 549

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

Добавить комментарий

Заполните поля ниже. Ваш e-mail не будет опубликован. Обязательные поля помечены *

Уважаемые пользователи! При добавлении комментариев на сайт Вам следует соблюдать правила указанные под формой отправки комментариев.

Соблюдайте добавления комментариев

Это не спам *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Нажмите, чтобы добавить код в комментарий
X

Привет дорогой друг

У тебя установлено расширение AdBlock или подобное. Добавь мой сайт в белый список, и тем самым внесешь свой вклад в его развитие. Инструкция как отключить AdBlock Хочу такое же окошко