簡體   English   中英

按計數獲取自定義分類術語列表,其中包含自定義 post_type 帖子

[英]Get the list of custom taxonomy terms by count which have custom post_type posts

在我的 WP v5.9.3 中,我有自定義帖子類型“歌曲”和共享的自定義分類法“流派”。

在歌曲存檔頁面上,我想列出所有帶有計數的“流派”分類法術語,這些術語在“歌曲”帖子類型中有帖子。

使用get_terms我能夠從“流派”中獲取所有術語,但無法過濾具有“歌曲”帖子的術語。

雖然我不是 SQL 查詢的專家,但我在下面嘗試過但無法獲得列表:

    $SQLquery = "SELECT wp_terms.* COUNT(*)from wp_terms
                 SELECT wp_posts.ID FROM wp_posts
                 INNER JOIN wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id
                 INNER JOIN wp_term_relationships ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
                 INNER JOIN wp_posts ON wp_posts.ID = wp_term_relationships.object_id
                 WHERE 1=1 
                 AND wp_posts.post_type IN ('song')
                 AND wp_posts.post_status = 'publish'
                 AND wp_term_taxonomy.taxonomy = 'genre'
                 GROUP BY wp_terms.term_id
                 ORDER BY wp_terms.term_id DESC";

    $SQLqueryResult = $wpdb->get_results($SQLquery, ARRAY_A);

    $SQL_term_ids = wp_list_pluck($SQLqueryResult, 'term_id');

如何使上述 SQL 查詢工作以獲取術語列表,或者是否有任何簡單/內置的 WordPress function? 謝謝你。

更新 1

問題出在SQLquery中的多個SELECT中,當刪除SELECT wp_posts.ID FROM wp_posts時,代碼按要求工作。

您的查詢開頭存在問題。 你不能像這樣使用兩個選擇。 當你想要select多列時,你需要使用逗號,意思是“select table1.column1, table2.column1...from yourselection”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM