web-dev-qa-db-fra.com

Obtenir des termes qui contiennent des messages qui appartiennent à d'autres termes?

J'ai donc une taxonomie personnalisée appelée "forme" et une autre appelée "couleur". Si je veux obtenir les termes de la liste sous forme qui contiennent des messages qui sont également présents sous les termes sous color , comment puis-je le faire?

Exemple, j'ai un message sous type de message personnalisé jouet appelé Ball qui est présent à la fois sous forme de cercle et de couleur rouge. Je souhaite récupérer le nom du terme Circle via la requête $wpdb. Je voudrais souligner que je veux récupérer la liste des termes et non les messages.

3
jilseego

Cela devrait vous donner les noms de tous ces termes dans un tableau

$wpdb->get_col("SELECT DISTINCT {$wpdb->terms}.name FROM {$wpdb->terms}
INNER JOIN {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_id = {$wpdb->terms}.term_id
INNER JOIN {$wpdb->term_relationships} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id
WHERE {$wpdb->term_taxonomy}.taxonomy = 'shape' AND {$wpdb->term_relationships}.object_id IN (
SELECT object_id FROM {$wpdb->term_relationships}
INNER JOIN {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id
WHERE {$wpdb->term_taxonomy}.taxonomy = 'color'
);");

Si vous voulez plus de détails autres que nom, vous devrez changer les champs pour sélectionner et changer également la fonction de get_col à get_results

Assurez-vous qu'il n'y a pas de fautes d'orthographe dans les noms de taxonomie "forme" et "couleur" utilisés dans la requête.

Références -

http://codex.wordpress.org/Class_Reference/wpdb

http://codex.wordpress.org/Database_Description

6
Mridul Aggarwal