WordPress: выводим список всех тегов (меток) в рубрике
Опубликовано: 23.08.2018
В одном из заказов на разработку шаблона для WordPress понадобилось выполнить нестандартную задачу — в рубрике вывести список всех тегов из статей, которые в ней находятся.
Как обычно в таких случаях, поискал решение в Интернете. Нашлось несколько вариантов. Что-то не работало, что-то было затратно по ресурсам сервера (берутся все статьи рубрики и из них циклом вытягиваются теги с дальнейшим удалением дубликатов). Но следующий оказался оптимальным и с минимумом кода, благодаря имеющимся в WordPress функциям для работы с терминами, которыми и являются элементы в таксономиях «Рубрика» и «Метка (тег)».
Оптимизация категорий и тегов интернет-магазинов
Итак, в шаблон рубрики (это может быть файл index.php , или archive.php , или category.php в зависимости от структуры вашего шаблона) необходимо вставить следующий код:
<?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)) { ?> <ul> <?php foreach($tags as $tag) { ?> <li><a href="<?php echo get_term_link($tag, 'post_tag') ?>"><?php echo $tag->name ?></a></li> <?php } ?> </ul> <?php } ?> <?php } ?>Если необходимо вывести этот список в любом месте шаблона, то замените get_query_var('cat') на ID рубрики (узнать его можно одним способов: так или так ).
Генератор ключевых слов и тегов на основе подсказок Google, YouTube, eBay, Amazon, Bing
Стоит отметить, что данные берутся только для текущей рубрики , без учета подрубрик. Чтобы вывести теги с учетом подрубрик всех уровней вложенности, в вышеуказанном коде необходимо заменить вторую строку ($postIDs = ...) на этот код:
$cat = get_query_var('cat'); $catIDs = get_term_children($cat, 'category'); array_push($catIDs, $cat); $postIDs = get_objects_in_term($catIDs, 'category');Сегодня | Завтра | ||
USD | 32.62 | 32.50 | |
EUR | 39.90 | 39.92 |
Обменник | Переходов |
Wmchanger | 6 |
E-Market | 5 |
WMtoCash.com | 4 |
Str-Money | 3 |
Hot-Change | 3 |
Вы можете получить WMR-бонус в размере 0,01-0,10 WMR на свой кошелек 1 раз в сутки | |
Кошелек
|
|
Код
|
|
Обмен Webmoney |