Created
July 20, 2016 16:12
-
-
Save seredniy/68f073094c6ba295262072472a330ce1 to your computer and use it in GitHub Desktop.
Вывод всех меток для определенной категории
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DISCLAIMER: this post is older than one year and may not be up to date with latest WordPress version. | |
Do you ever wanted to be able to get tags related to one (or more) specific category? If yes, I’m pretty sure you’ll be delighted with this very cool tip. | |
First, here is the function you have to paste in your function.php file: | |
function get_category_tags($args) { | |
global $wpdb; | |
$tags = $wpdb->get_results | |
(" | |
SELECT DISTINCT terms2.term_id as tag_id, terms2.name as tag_name, 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 (".$args['categories'].") AND | |
t2.taxonomy = 'post_tag' AND p2.post_status = 'publish' | |
AND p1.ID = p2.ID | |
ORDER by tag_name | |
"); | |
$count = 0; | |
foreach ($tags as $tag) { | |
$tags[$count]->tag_link = get_tag_link($tag->tag_id); | |
$count++; | |
} | |
return $tags; | |
} | |
Once you have pasted the function, you can use it in your theme: | |
$args = array('categories' => '12,13,14'); | |
$tags = get_category_tags($args); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment