web-dev-qa-db-ja.com

取得するために必要なSQLクエリ POST カテゴリ(分類) - SQL文でなければなりません

WordpressデータベースのPOST_IDによってクエリーを実行し、関連付けられているカテゴリ名を返すためのWordpress以外のツールでの作業。これは不動産ウェブサイト用で、カテゴリは "mi_neighborhoods"と呼ばれ、wp_term_taxonomy.taxonomyによって参照されます。

私が使用しているすべてのカテゴリ名を取得するための他のクエリの1つでは、

    SELECT *
    FROM wp_term_relationships
    LEFT JOIN wp_term_taxonomy
    ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
    LEFT JOIN wp_terms on wp_term_taxonomy.term_taxonomy_id = wp_terms.term_id
    WHERE wp_term_taxonomy.taxonomy = 'mi_neighborhoods'  
    GROUP BY wp_term_taxonomy.term_id

だから私はPOST_IDを持っています、私はその投稿のための "mi_neighborhoods"の値を返す必要があります。

誰も手伝ってくれる?

2
Michael Fever

分類法 'mi_neighborhoods'に対してこのSQLクエリを試すことができ、POST_ID = 1304を取りましょう。

SELECT t.*, tt.* FROM wp_terms AS t 
INNER JOIN wp_term_taxonomy AS tt ON (tt.term_id = t.term_id) 
INNER JOIN wp_term_relationships AS tr ON (tr.term_taxonomy_id = tt.term_taxonomy_id) 
WHERE tt.taxonomy IN ('mi_neighborhoods') AND tr.object_id IN (1304) 
ORDER BY t.name ASC;

一般にあなたはこの関数からそれを得ることができます:

wp_get_object_terms(1304, 'mi_neighborhoods'); 

編集:

これが 'id/name/slug'分類法に属するすべての用語のmi_neighborhoodsを与えるクエリです。

SELECT t.term_id, t.name, t.slug  
FROM wp_terms AS t 
INNER JOIN wp_term_taxonomy AS tt ON (t.term_id = tt.term_id) 
WHERE tt.taxonomy IN ('mi_neighborhoods') 
ORDER BY t.name ASC

これは空でないすべての用語についても同じです。

SELECT t.term_id, t.name, t.slug 
FROM wp_terms AS t 
INNER JOIN wp_term_taxonomy AS tt ON (t.term_id = tt.term_id) 
WHERE tt.taxonomy IN ('mi_neighborhoods') AND tt.count > 0
ORDER BY t.name ASC
6
birgire