WordPress
Запрос сообщений
Поиск…
Синтаксис
- $ the_query = новый WP_Query ($ args);
- $ posts_array = get_posts ($ args);
параметры
параметр | Описание |
---|---|
$ арг | (массив) . Массив необходимых аргументов для запроса - может быть адаптирован к вашим потребностям, например, запрашивать сообщения только из одной категории, из пользовательского типа сообщений или даже запрашивать определенную таксономию |
замечания
Аргументы запроса многочисленны. На странице WP_Query () codex есть список параметров. Некоторые из них
- Параметры автора
- Параметры категории
- Параметры тега
- Параметры таксономии
- Параметры поиска
- Параметры страницы и страницы
- Параметры пароля
- Параметры типа
- Параметры состояния
- Параметры разбивки на страницы
- Параметры заказа и заказа
- Параметры даты
- Пользовательские параметры поля
- Параметры разрешения
- Параметры типа Mime
- Параметры кэширования
- Параметр возвращаемых полей
Одна из самых важных вещей, которые нужно иметь в виду:
Никогда не используйте query_posts ()
query_posts()
переопределяет основной запрос и может вызвать проблемы в остальной части вашей темы. Каждый раз, когда вам нужно изменить основной запрос (или любой запрос), используйте фильтр pre_get_posts . Это позволит вам изменить запрос до его запуска.
Также, когда вы запрашиваете сообщения, вы всегда должны перезагружать его, используя wp_reset_postdata () . Это восстановит глобальную переменную $post
основного цикла запроса, и позже вы не будете иметь каких-либо проблем (например, исключенные категории, потому что в вашем вторичном цикле вы исключили их и забыли сбросить запрос).
Использование объекта WP_Query ()
Создание отдельного экземпляра объекта WP_Query
очень просто:
$query_args = array(
'post_type' => 'post',
'post_per_page' => 10
);
$my_query = new WP_Query($query_args);
if( $my_query->have_posts() ):
while( $my_query->have_posts() ): $my_query->the_post();
//My custom query loop
endwhile;
endif;
wp_reset_postdata();
Обратите внимание, что вам нужно построить массив аргументов запроса для вашей спецификации. Для получения дополнительной информации просмотрите страницу WP_Query codex .
Использование get_posts ()
get_posts()
- это оболочка для отдельного экземпляра объекта WP_Query
. Возвращаемое значение представляет собой массив объекта post.
global $post;
$args = array(
'numberposts' => 5,
'offset'=> 1,
'category' => 1
);
$myposts = get_posts( $args );
foreach( $myposts as $post ) :
setup_postdata($post); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php endforeach;
wp_reset_postdata(); ?>
Для получения дополнительной информации просмотрите страницу get_posts () codex .