Поиск…


Синтаксис

  • $ the_query = новый WP_Query ($ args);
  • $ posts_array = get_posts ($ args);

параметры

параметр Описание
$ арг (массив) . Массив необходимых аргументов для запроса - может быть адаптирован к вашим потребностям, например, запрашивать сообщения только из одной категории, из пользовательского типа сообщений или даже запрашивать определенную таксономию

замечания

Аргументы запроса многочисленны. На странице WP_Query () codex есть список параметров. Некоторые из них

Одна из самых важных вещей, которые нужно иметь в виду:

Никогда не используйте 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 .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow