Вывод записей с помощью WP_Query{}

Вывод записей с помощью WP_Query{}

26 сентября 2019 WordPress

WP_Query{} — это класс, с помощью которого работают самые необходимые функции в WordPress для вывода постов. Вы можете использовать этот класс для вывода любых записей по указанным параметрам.

Возможно вы уже встречали функцию для вывода постов query_posts(), но использовать её не рекомендуется. Правильным решением будет применение именно PHP класса WP_Query{}.

У класса множество параметров и хуков, которые позволяют отфильтровать и вывести только нужные нам данные. Рассмотрим как применять самые основные.

Простой запрос с WP_Query{}

Массив с аргументами удобнее задавать в переменной, а затем передавать его при создании объекта класса. Создадим массив с параметром cat и posts_per_page, чтобы выбрать записи из рубрики с определённым ID и вывести их на странице по 5. Здесь подарок летчику на день рождения

// задаем параметры выборки в массиве
$args = array(
	'posts_per_page' => 5, // выводить по 5
	'cat' => 4, // ID рубрики
);

И создаем новый объект с этими параметрами.

$query = new WP_Query( $args );

Осталось только вывести полученные посты. Полный код примера:

// задаем параметры выборки в массиве
$args = array(
	'posts_per_page' => 5, // выводить по 5
	'cat' => 4, // ID рубрики
);
$query = new WP_Query( $args );

// Цикл
if ( $query->have_posts() ) {
	while ( $query->have_posts() ) {
		$query->the_post();
		echo '<h1>' . get_the_title() . '</h1>';
	}
} else {
	// Постов не найдено
}

Но мне больше нравится что-то вроде такого варианта:

<?php 
// задаем параметры выборки в массиве
$args = array(
	'posts_per_page' => 5, // выводить по 5
	'cat' => 4, // ID рубрики
);
// запрос
$query = new WP_Query( $args ); ?>

<?php if ( $query->have_posts() ) : ?>

	<!-- цикл -->
	<?php while ( $query->have_posts() ) : $query->the_post(); ?>
		<h1><?php the_title(); ?></h1>
	<?php endwhile; ?>
	<!-- конец цикла -->

	<?php wp_reset_postdata(); //очищаем результат запроса?>

<?php else : ?>
	<p><?php esc_html_e( 'Ничего не найдено.' ); ?></p>
<?php endif; ?>

Параметры запроса WP_Query{}

Как я уже говорил у класса большое количество разнообразных фильтров, хуков и параметров запроса. Вот небольшой список тех, с которыми чаще всего приходится встречаться:

cat — ID категории
posts_per_page — ограничение на кол-во выводимых постов
post_type — тип постов, может быть кастомный, например portfolio
orderby — сортировать по (date, title, id, meta_value и др.)
order — порядок сортировки (ASC, DESC)
meta_key — имя произвольного поля
meta_value — значение произвольного поля
author — ID автора
tag_id— ID метки

Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Остались вопросы по статье? Задайте их прямо сейчас!
Перенос сайта на WordPress на другой домен

В повседневной работе часто приходится сталкиваться с переносом сайта на Wordpress с локального или тестового домена на основной. Для этого необходимо не только скопировать файлы, базу данных и поменять настройки в конфигурационном файле, но и сделать ряд SQL-запросов, чтобы прописать Читать далее

Правильный файл robots.txt для WordPress 2019

Самый оптимальный и простой код файла robots.txt для вашего сайта на WordPress, который подойдет для всех поисковиков. Этот вариант использую на данном сайте. Не забудьте заменить maindot.ru на адрес вашего сайта. Содержание файла robots.txt для WordPress Если вы используете HTTPS, Читать далее

Произвольные типы записей WordPress

Произвольные типы записей позволяют разделить посты не только по категориям, но и по их типу с собственными названиями и рубриками. Это что-то типо инфоблока, как в CMS 1С-Битрикс. По умолчанию в WordPress есть возможность добавлять записи и их рубрики. К Читать далее

Произвольные поля WordPress

Произвольные поля или как их еще называют кастомные или доп. поля в WordPress очень нужная вещь, особенно при создании например сайта-каталога. С помощью доп. полей можно добавить к записям возможность указывать например цену или цвет, а затем выводить сохраненное значение Читать далее

Создание плагина WordPress с нуля

Когда я создавал свой первый плагин, то оказалось, что в сети очень мало информации по этому вопросу. С трудом удалось найти даже основы. Надеюсь эта статья поможет вам научиться писать различные плагины для WordPress. Наверняка вы уже пользовались и знаете, Читать далее

WordPress Ajax

По большей части публикации про применение Ajax в WordPress сложные для понимания, особенно если вы мало знакомы с этой технологией. В этой статье я покажу, как на самом деле просто использовать Ajax в публичной части сайта. Ajax запросы в WordPress Читать далее

WordPress подгрузка постов кнопкой показать еще или бесконечным скроллом

Кнопка "Показать ещё" и бесконечный скроллинг - это по сути постраничная навигация, которая подгружает следующую страницу с постами без перезагрузки страницы. Подобные примеры часто можно встретить в лентах соц. сетей. В этом примере показана реализация кнопки "Показать ещё" и бесконечного Читать далее

Добавить комментарий