ГлавнаяРазное5 полезных запросов с помощью WP_Query

5 полезных запросов с помощью WP_Query

Если вы разрабатываете плагины или темы для WordPress, то вы наверняка сталкивались с классом WP_Query, который позволяет выполнять запросы на записи и страницы в базу данных WordPress.

Полезные запросы с WP_Query в WordPress

Полезные запросы с WP_Query в WordPress

В этой статье мы привели список из нескольких полезных запросов, которые можно легко встроить в любое место вашего сайта на WordPress.

1. Самые комментируемые записи

С помощью следующего запроса можно вывести список из десяти самых комментируемых статей на вашем сайте за все время:

$query = new WP_Query( array(
    'post_type'      => 'post',
    'posts_per_page' => 10,
    'orderby'        => 'comment_count',
    'order'          => 'desc',
) );

while ( $query->have_posts() ) {
    $query->the_post();
    the_title();
}

С помощью дополнительного атрибута date_query можно выводить в список только те записи, которые были опубликованы за прошлую неделю:

$query = new WP_Query( array(
    ...
    'date_query' => array(
        array(
            'after' => '1 week ago',
        ),
    ),
) );

2. Последние измененные записи

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

$query = new WP_Query( array(
    'post_type'      => 'post',
    'orderby'        => 'modified',
    'order'          => 'desc',
    'posts_per_page' => 10,
) );

3. Запланированные записи

Если вы пользуетесь запланированными записями в WordPress, то вы можете показать читателям список запланированных тем на вашем сайте:

$query = new WP_Query( array(
    'post_type'      => 'post',
    'post_status'    => 'future',
    'order'          => 'asc',
    'posts_per_page' => 10,
) );

Дату публикации запланированной записи можно вывести с помощью функции the_time().

4. Записи защищенные паролем

Если вы защищаете некоторые ваши записи паролем в WordPress, вы можете вывести список всех защищенных записей с помощью следующего запроса:

$query = new WP_Query( array(
    'post_type'    => 'post',
    'has_password' => true,
) );

Заменив значение аргумента has_password на false, вы получите записи не защищенные паролем.

5. Страницы только верхнего уровня

Если вам необходимо вывести список опубликованных страниц, то подстраницы (дочерние страницы) можно спрятать с помощью аргумента post_parent:

$query = new WP_Query( array(
    'post_type'      => 'page',
    'post_parent'    => 0,
    'posts_per_page' => 5,
) );

Указав идентификатор страницы в post_parent можно вывести только подстраницы конкретной страницы.

Подробнее об использовании класса WP_Query в темах и плагинах WordPress, вы можете узнать в нашей подробной статье. Если у вас есть дополнение к списку или вопрос по одному из запросов, оставьте комментарий и мы обязательно вам ответим.

Подписаться на рассылку

Подписаться → Подпишитесь на бесплатную рассылку журнала WP Magazine и получайте новости, события, подборки тем и плагинов, уроки, советы и многое другое в мире WordPress!

  • Дамир

    а почему в примерах не используется wp_reset_postdata()?

    • Скорее для простоты. Здесь акцент именно на сами запросы с помощью WP_Query, и мы подразумеваем, что с классом вы уже знакомы.

      • Дамир

        а wp_reset_postdata() желательно использовать всегда, в не зависимости ото того сколько циклов на странице?

        • Зависит от того, что вы пытаетесь сделать и каким образом, но чаще всего да, если у вас есть на странице вторичный цикл, то для восстановления глобальных из первого цикла, нужно использовать wp_reset_postdata().