2013-08-05 59 views
0

我有一個漂亮的新手問問專家。我需要獲得特定類別下的帖子的唯一標籤。如何在wordpress中的類別下獲得帖子的唯一標籤?

爲了更清楚我們假設我有30個類別的帖子。從他們那裏我選擇Car類別,這個類別下有30個職位。再次假設我有100多個'帖子標籤',並且這些30個帖子在Cars類下被標記爲35個標籤。

我如何通過使用類別「汽車」得到這35個標籤?

我可以執行原始數據庫查詢尋找標籤列表,但我有興趣採取一些更優雅和正確的方式來做到這一點。

謝謝先進。

回答

0

最好的解決方法是編寫自定義SQL查詢並一次獲取所有標籤。任何其他使用WP核心函數的方法都會產生大量的小型SQL查詢,這是多餘的。

使用此查詢來獲取所有類別標籤:

SELECT DISTINCT pt.term_id, pt.name 
    FROM wp_terms AS t 
    LEFT JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id 
    LEFT JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id 
    LEFT JOIN wp_term_relationships AS ptr ON ptr.object_id = tr.object_id AND ptr.term_taxonomy_id <> tr.term_taxonomy_id 
    LEFT JOIN wp_term_taxonomy AS ptt ON ptt.term_taxonomy_id = ptr.term_taxonomy_id AND ptt.taxonomy = 'post_tag' 
    LEFT JOIN wp_terms AS pt ON pt.term_id = ptt.term_id 
WHERE t.name = 'Car' AND tt.taxonomy = 'category' AND pt.term_id IS NOT NULL 
ORDER BY pt.term_id 
相關問題