RSS-подписка

RSS-лента

Новые статьи

Последние комментарии


Получать обновления на эл. почту

Ваш e-mail:

Рассылка новостей от Loco

WordPress: выводим подрубрики и список тегов (меток) на странице рубрики

WordPress: выводим подрубрики и список тегов (меток) на странице рубрики Для придания наглядности и удобства ориентирования в блоге на WordPress выведем на странице со списком постов (записей) список рубрик и список меток, к которым относятся посты из текущей рубрики.

1. Выводим подрубрики на странице рубрик

Находим файл в шаблоне, который отвечает за рубрики. Обычно это archive.php (выыодит архивы и категории одновременно) или category.php (выводит только категории).

Вставляем в него, в то место, где хотим вывести список подрубрик, следующий код:

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

Вот что тут происходит:

  • В строке 1 обачиваем код функции общим блоком с классом subcat, чтобы задать ширину и отступы всему блоку со всеми ссылками на подрубрики;
  • Строка 2 начинает вывод php функции;
  • Строка 3 задает условие для вывода функции. Если в текущей категории нет подрубрик, тогда код срабатывать не будет и никаких надписей типа "Рубрик нет" не будет выводиться;
  • Строка 4 также задает условие. Если это категория, тогда идем далее и приступаем к выводу;
  • Строка 5 - если ее убрать, то будет выводиться весь список рубрик стайта;
  • Строка 6 - функция, которая выводит список рубрик. В скобках указаны параметры:
    1. child_of='.$current_cat.' - указывает, что текущая страница является родительской рубрикой и будут выводиться только ее подрубрики, а не все имеющиеся на сайте;
    2. &title_li= - указывает, что не будет выводиться заголовок для списка с ссылками на категории, например "Рубрики";
    3. show_count=1 - отображать ли количество записей в каждой из рубрики (подрубрик). 1 - отображать, 0 - не отображать.

 

Приведу кусок своих css-стилей для оформления (тут и для меток тоже уже прописаны):

.subcat{
    width: 100%;
    margin: 0px auto 10px;
}
.subcat ul {
    list-style: none;
    margin: 0;
}
.subcat ul li{
    //margin: 0px 10px;
    font-size: 14px;
    padding: 0px 10px 10px 0px;
    float: left;
}
.subcat ul li .cat-item-7{
    background: url("images/icon_subcat.png") no-repeat scroll 0px 2px transparent;
    padding-left: 20px;
    padding-bottom: 3px;
}
.subcat ul li a{
    color: #34495E !important;
    //border: 1px solid #ddd;
    -webkit-box-shadow: none;
    box-shadow: none;
    display: block;
    padding: 4px 10px 5px;
    position: relative;
    -webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
    transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
    width: auto;
    word-wrap: break-word;
    z-index: 0;
    background: #fd0;
}
.children li a {font-size:10px;}
.graydiv {
    padding: 5px 20px;
    background: #eeeeee;
}
.subtags {margin:0;}
.subtags li{
    margin: 0px 10px;
    font-size: 12px;
    padding: 0px 6px 0px 0px;
    float: left;
}

 

2. Выводим список меток в рубрике.

Надо вывести на странице рубрики список всех меток (тегов) из записей, которые в ней находятся.

Вставляю ниже предыдущего кода

<?php
        $postIDs = get_objects_in_term(get_query_var('cat'), 'category');
        if (!empty($postIDs) && !is_wp_error($postIDs)) {
          $tags = wp_get_object_terms($postIDs, 'post_tag');
          if (!empty($tags) && !is_wp_error($tags)) {
        ?>
        <div class="graydiv clear">
        <ul class="subtags">
          <?php foreach($tags as $tag) { ?>
          <li><a href="<?php echo get_term_link($tag, 'post_tag') ?>"><?php echo $tag->name ?></a></li>
          <?php } ?>
        </ul>
        </div>
          <?php } ?>
        <?php } ?>
        <hr />

Чтобы выводить все метки из текущей рубрики и ещё из её подрубрик, замените вторую строку на

$cat = get_query_var('cat');
$catIDs = get_term_children($cat, 'category');
array_push($catIDs, $cat);
$postIDs = get_objects_in_term($catIDs, 'category');
вывод подрубрик и меток постов на странице рубрики в WordPress

 

Источники:

Источник: loco.ru

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (0)     Подпишитесь на RSS комментариев к этой статье.