SQL запрос WordPress. Получить все публикации

Статья подойдёт тем, кто хочет что-нибудь запрограммировать на базе CMS WordPress. В этой статье разбирается пример получения текста и фото к публикации из базы WordPress, а именно SQL запросы.
Если Вы не знакомы с SQL запросами, то рекомендуем посетить раздел нашего сайта, где собраны "учебные статьи о SQL запросах" к базе данных.
Для того, чтобы получить все названия и тексты публикаций из базы WordPress, используйте следующий запрос:
SELECT ID, post_title, post_content FROM wp_posts WHERE post_status='publish' AND post_type='post' ORDER BY ID ASC;
Как видно из запроса, возвращаться будут столбцы:
  • ID - номер записи
  • post_title - название публикации
  • post_content - текст публикации
В таблице "wp_posts" содержатся не только опубликованные статьи, но и черновики. Поэтому чтобы возвращались только опубликованные статьи, в запросе стоит фильтр post_status='publish' и post_type='post'.

Помимо получения публикации, может возникнуть необходимость получить изображение к новости. Для решения этой задачи есть нетривиальное решение, потому что необходимо объединить в одном запросе сделать выборку из двух таблиц (wp_postmeta и wp_options):
SELECT concat((SELECT option_value FROM wp_options WHERE option_name ='siteurl' LIMIT 1),'/wp-content/uploads/',childmeta.meta_value) AS 'PIC'
FROM wp_postmeta childmeta
INNER JOIN wp_postmeta parentmeta ON (childmeta.post_id=parentmeta.meta_value)
WHERE parentmeta.meta_key='_thumbnail_id' AND childmeta.meta_key = '_wp_attached_file'
AND parentmeta.post_id = 'id' LIMIT 1;
В последней строчке запроса стоит 'id'. Вместо этой надписи надо поставить цифру - это id публикации из таблицы "wp_posts", полученный в предыдущем запросе. В конце запроса стоит ограничение на вывод: "LIMIT 1".

Потому что картинка к публикации может быть одна. Нет смысла нагружать базу больше необходимого.
Чтобы узнать больше об объединении таблиц при SQL запросе, читайте статью "Объединение таблиц при запросе (JOIN) в SQL". Там разобран механизм объединения таблиц и приведены примеры с "JOIN".
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, покупка SSL сертификатов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: