使用Wordpress,我需要從特定類別的帖子生成一個標籤(術語)數組。例如,如果我有兩個類別,「蘋果」和「橙色」,我想要一個僅用於蘋果類別中的帖子中的術語數組,而不是橙色類別中的術語數組。 (但是,如果中使用,應該包括這個詞)WordPress的:從特定類別的帖子生成標籤陣列
我試過使用少量的wordpress函數,但沒有返回我想要的東西(包括tag_cloud函數)。我的猜測是我留下了一個查詢調用...但到目前爲止,我的所有查詢都沒有給我我想要的列表。
在此先感謝您的幫助。
使用Wordpress,我需要從特定類別的帖子生成一個標籤(術語)數組。例如,如果我有兩個類別,「蘋果」和「橙色」,我想要一個僅用於蘋果類別中的帖子中的術語數組,而不是橙色類別中的術語數組。 (但是,如果中使用,應該包括這個詞)WordPress的:從特定類別的帖子生成標籤陣列
我試過使用少量的wordpress函數,但沒有返回我想要的東西(包括tag_cloud函數)。我的猜測是我留下了一個查詢調用...但到目前爲止,我的所有查詢都沒有給我我想要的列表。
在此先感謝您的幫助。
我不確定你可以使用WordPress提供的功能完成你想要的功能。這裏,似乎你想要做什麼SQL查詢:
SELECT tag_terms.name, COUNT(wp_posts.ID) FROM wp_posts
INNER JOIN wp_term_relationships AS cat_term_relationships ON wp_posts.ID= cat_term_relationships.object_ID
INNER JOIN wp_term_taxonomy AS cat_term_taxonomy ON cat_term_relationships.term_taxonomy_id= cat_term_taxonomy.term_taxonomy_id
INNER JOIN wp_terms AS cat_terms ON cat_term_taxonomy.term_id= cat_terms.term_id
INNER JOIN wp_term_relationships AS tag_term_relationships ON wp_posts.ID= tag_term_relationships.object_ID
INNER JOIN wp_term_taxonomy AS tag_term_taxonomy ON tag_term_relationships.term_taxonomy_id= tag_term_taxonomy.term_taxonomy_id
INNER JOIN wp_terms AS tag_terms ON tag_term_taxonomy.term_id= tag_terms.term_id
WHERE cat_term_taxonomy.taxonomy='category' AND cat_terms.name='apple' AND tag_term_taxonomy.taxonomy='post_tag'
GROUP BY tag_terms.name
它的要點是,你與分類表中加入了wp_posts表幾次獲得那個職位中的ID所需的類別,然後加入這些使用分類表的ID可以多次獲取相關標籤。
這裏是你如何能做到這一點使用WordPress功能
<?php
$tags = array();
$posts = get_posts('category_name=new-cat&numberposts=-1'); //get all posts in category
foreach ($posts as $post){
$posttags = get_the_tags($post->ID); //check for tags
if ($posttags){
foreach ($posttags as $posttag){
$tags[$posttag->term_id] = $posttag->name; // add to array of tag ids => names
}
}
}
print_r($tags);
?>
這可能是最好的原始的SQL查詢,因爲這些往往會打破時,WordPress的更新其數據庫架構。