Skip to main content

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

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

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 без изменения шаблонов тем. Боковая панель является... Читать далее

Оптимизация WordPress

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

Отправка сообщений в Telegram из Contact Form 7

Мы уже рассматривали как отправлять сообщения в телеграмм из обычного PHP скрипта и заказы из... Читать далее

Получить параметры сайта с помощью функции get_bloginfo() WordPress

Сегодня мы поговорим об одной нужной функции WordPress get_bloginfo(), которая возвращает параметры сайта и довольно... Читать далее

Что такое шорткод и как его использовать

Шорткоды - это PHP функции, которые можно вставлять в текст записи, страницы или другой таксономии... Читать далее

Contact Form 7 reCAPTCHA. Установка и настройка

Защитить от спама свои контактные формы на сайте WordPress, созданные в плагине Contact Form 7... Читать далее

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

*

code