web-dev-qa-db-ja.com

wpdb分類SQLで投稿を取得する

特定のpost_typeの投稿のリストとカスタム分類用語の名前が必要です。

これは私がこれまでに得たものです

SELECT p.post_name,t.name as clientName 
FROM $wpdb->posts AS p, $wpdb->terms AS t
LEFT JOIN $wpdb->term_relationships AS tr ON ('p.ID' = tr.object_id)
LEFT JOIN $wpdb->term_taxonomy AS tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
LEFT JOIN $wpdb->terms AS t2 ON (t2.term_id = tt.term_id)
WHERE   p.post_status = 'publish' 
    AND p.post_type = 'portfolio'
    AND tt.taxonomy = 'clients' 
ORDER BY p.post_date DESC

どうしたの?私はあまりにも多くの結果を得ています、私は正しい投稿を得ますが、すべてのクライアントで数回。これは、$ wpdb->タームをtおよびt2として使用しているからでしょうか。しかし、私がそれをtとして使用しようとすると、エラーが発生します。

Not unique table/alias: 't'

誰が手伝える?

3
Web-Entwickler

すみません、私はちょうど解決策を見つけました:

SELECT p.post_name, t.name as clientName 
FROM $wpdb->posts AS p
INNER JOIN $wpdb->term_relationships AS tr ON ('p.ID' = tr.object_id)
INNER JOIN $wpdb->term_taxonomy AS tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
INNER JOIN $wpdb->terms AS t ON (t.term_id = tt.term_id)
WHERE   p.post_status = 'publish' 
    AND p.post_type = 'portfolio'
    AND tt.taxonomy = 'clients' 
ORDER BY p.post_date DESC

FROM節で$wpdb->termsのエイリアスを定義する必要はありません。

4
Web-Entwickler