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

Опубликовано: 01.09.2018

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

Woocommerce: настройка постоянных ссылок

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 - функция, которая выводит список рубрик. В скобках указаны параметры: child_of='.$current_cat.' - указывает, что текущая страница является родительской рубрикой и будут выводиться только ее подрубрики, а не все имеющиеся на сайте; &title_li= - указывает, что не будет выводиться заголовок для списка с ссылками на категории, например "Рубрики"; show_count=1 - отображать ли количество записей в каждой из рубрики (подрубрик). 1 - отображать, 0 - не отображать.

 


WooCommerce вывод описания категорий под витриной товаров

Приведу кусок своих 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' );

 

Источники:

rss