Иногда при создании удобной навигации бывает полезно выводить не все метки, а только те, которые присутствуют в постах, опубликованных в определенных категориях.
Для того, чтобы вывести метки только из категорий, какие вы укажете, нужно создать специальную функцию. Для этого вставьте нижеприведенный код в файл functions.php:
function get_category_tags($cats) { global $wpdb; $tags = $wpdb->get_results (" SELECT DISTINCT terms2.term_id as tag_id, terms2.name as tag_name, t2.count as posts_count, null as tag_link FROM wp_posts as p1 LEFT JOIN wp_term_relationships as r1 ON p1.ID = r1.object_ID LEFT JOIN wp_term_taxonomy as t1 ON r1.term_taxonomy_id = t1.term_taxonomy_id LEFT JOIN wp_terms as terms1 ON t1.term_id = terms1.term_id, wp_posts as p2 LEFT JOIN wp_term_relationships as r2 ON p2.ID = r2.object_ID LEFT JOIN wp_term_taxonomy as t2 ON r2.term_taxonomy_id = t2.term_taxonomy_id LEFT JOIN wp_terms as terms2 ON t2.term_id = terms2.term_id WHERE t1.taxonomy = 'category' AND p1.post_status = 'publish' AND terms1.term_id IN (". $cats .") AND t2.taxonomy = 'post_tag' AND p2.post_status = 'publish' AND p1.ID = p2.ID ORDER by tag_name "); foreach($tags as $tag) $out .= '<a>tag_id) .'">'. $tag->tag_name .'<span class="tags-post-count">'. $tag->posts_count .'</span></a>, '; return rtrim($out, ', '); }
Эта функция формирует список меток, которыми помечены посты, опубликованные в определенных категориях. Рядом с каждой меткой выводится количество постов. Теперь осталось вывести список меток. Для этого нужно вставить в шаблон:
24,35,46 – это ID категорий, из которых нужно выводить метки.
Как пользоваться этой возможностью? Например, можно выводить список меток из категории на странице постов определенной категории. Для этого добавьте в файл, отвечающий за вывод постов из категории (обычно это index.php, archive.php или categiry-ID.php):
Таким образом можно сделать навигацию по постоам определенной категории более избирательной, ограничивая ее только встречающимися в ней метками. Возможно, что вам так же будет интересен способ вывода меток и категорий постов в результатах поиска.
А как — не привязываясь к ID категорий?
Требуется выводить перечни меток тех категорий, где находится пользователь.
Попробуйте, должно сработать.
Если требуется вставлять куда вне цикла вывода постов, код будет другой.
Спасибо плагин работает отлично, но я создал два таксомании date и denomination, как мне вывести метки из пользовательских таксоманий в категории сайта?
Спасибо за sql.