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, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: