Cum să obții postări după taxonomie în WordPress folosind SQL
20 apr. 2016, 11:58:14
Vizualizări: 14.3K
Voturi: 6
Am nevoie de o listă de postări de un anumit post_type plus numele unui termen din taxonomia personalizată.
Iată ce am făcut până acum:
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
Care este problema? Obțin prea multe rezultate - primesc postările corecte, dar de mai multe ori cu fiecare client. Cred că asta se întâmplă pentru că folosesc $wpdb->terms ca t ȘI ca t2? Dar când încerc să-l folosesc doar ca t, primesc eroarea:
Not unique table/alias: 't'
Cine mă poate ajuta?

Web-Entwickler
191
Comentarii
Toate răspunsurile la întrebare
1
1
Băieți, scuze, tocmai am găsit soluția:
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
Pur și simplu nu trebuie să definesc un alias pentru $wpdb->terms
în clauza FROM
.

Web-Entwickler
191
20 apr. 2016 12:07:16
Întrebări similare
3
răspunsuri
3
răspunsuri