web-dev-qa-db-fra.com

SQL QUERY nécessaire pour obtenir POST catégorie (taxonomie)? - DOIT être une instruction SQL

Travailler sur un outil en dehors de Wordpress pour interroger la base de données wordpress par POST_ID et renvoyer le nom de catégorie associé. Ceci est destiné à un site Web immobilier et les catégories sont appelées "mi_neighborhoods" et sont désignées par wp_term_taxonomy.taxonomy.

Dans l'une de mes autres requêtes pour obtenir tous les noms de catégorie que j'utilise:

    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

Donc, j'ai le POST_ID, je dois renvoyer la valeur du "mi_neighborhoods" pour ce poste.

Quelqu'un peut-il aider?

2
Michael Fever

Vous pouvez essayer cette requête SQL pour la taxonomie 'mi_neighborhoods' et prenons 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;

En général, vous pouvez l'obtenir à partir de cette fonction:

wp_get_object_terms(1304, 'mi_neighborhoods'); 

MODIFIER:

Voici une requête qui vous donne id/name/slug de tous les termes appartenant à la taxonomie '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

et voici la même chose pour tous les termes non vides:

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