SQL-ЗАПРОС, необходимый для получения категории ЗАПИСИ (таксономии)? - ДОЛЖЕН быть оператор SQL


Работа над инструментом за пределами Wordpress для запроса базы данных wordpress по POST_ID и возврата связанного имени категории. Это для веб-сайта недвижимости, и категории называются "mi_neighborhoods" и на них ссылается wp_term_taxonomy.таксономия.

В одном из моих других запросов, чтобы получить все имена категорий, которые я использую:

    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" для этого сообщения.

Может ли кто-нибудь помочь?

Author: Michael Fever, 2013-02-15

1 answers

Вы можете попробовать этот SQL-запрос для таксономии "mi_neighborhoods" и давайте возьмем 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
 7
Author: birgire, 2013-02-15 17:37:37