Если вы разрабатываете плагины или темы для 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, вы можете узнать в нашей подробной статье. Если у вас есть дополнение к списку или вопрос по одному из запросов, оставьте комментарий и мы обязательно вам ответим.