Хочу вывести с другого блога все записи по рубрикам и определенные значения произвольных полей и миниатюру записи. Как это делается вообще и можно ли?
Т. е. такого вида
[Рубрика]
[миниатюра записи] [название и линк] [дата записи] [произвольное значение] [произвольное значение]
...
[Рубрика]
...
Понятно, что через wpdb, но как будет выглядеть SELECT запрос? Не хочется городить из нескольких запросов, а одним запросом не понимаю, как сделать.
Ответ
Для того чтобы решить данную задачу с помощью одного SELECT запроса достаточно использовать обычный INNER JOIN
Вот пример выборки названия, даты публикации и содержимого записей конкретной рубрики из базы данных WordPress. Сразу оговорюсь, данные этим запросом в своё время выбирались не для использования на сайте под этой CMS. Поэтому $wpdb в нём не фигурирует.
SELECT `post_title`,`post_date`, `post_content` FROM `wp_terms` AS `t1`
INNER JOIN `wp_term_taxonomy` AS `t2` ON t1.term_id=t2.term_id
INNER JOIN `wp_term_relationships`AS t3 ON t2.term_taxonomy_id=t3.term_taxonomy_id
INNER JOIN `wp_posts` AS t4 ON t4.ID=t3.object_id
WHERE t2.taxonomy='category' AND t1.term_id=1;
В прочем, полагаю, данный пример и так достаточно наглядно пояснят суть решения и Вы сможете доработать его под свои цели.
На всякий случай, ссылка на описание БД WordPress в официальной документации.
Комментариев нет:
Отправить комментарий