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" для этого сообщения.
Может ли кто-нибудь помочь?
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