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

wpsortdate-5869591

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 '

‘ . get_the_title() . ‘

';
        }
} else {
        // Постов не найдено
}

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

        
        
        
        

        


        

Параметры запроса 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 метки

Читайте также: