Szukaj…


Składnia

  • $ the_query = new WP_Query ($ args);
  • $ posts_array = get_posts ($ args);

Parametry

Parametr Opis
$ args (tablica) Tablica potrzebnych argumentów dla zapytania - może być dostosowana do twoich potrzeb, np. sprawdzanie postów tylko z jednej kategorii, z niestandardowego typu postu lub nawet sprawdzanie określonej taksonomii

Uwagi

Argumenty zapytania są liczne. Strona kodeksu WP_Query () ma listę parametrów. Niektórzy z nich są

Jedną z najważniejszych rzeczy, o których należy pamiętać, jest:

Nigdy nie używaj query_posts ()

query_posts() zastępuje główne zapytanie i może powodować problemy w pozostałej części motywu. Za każdym razem, gdy trzeba zmodyfikować zapytanie główne (lub dowolne zapytanie w tym zakresie), należy użyć filtru pre_get_posts . Umożliwi to zmodyfikowanie zapytania przed jego uruchomieniem.

Również podczas wysyłania zapytań do postów należy zawsze je zresetować za pomocą wp_reset_postdata () . Spowoduje to przywrócenie globalnej zmiennej $post głównej pętli zapytań i nie będziesz mieć później żadnych problemów (takich jak wykluczenie kategorii, ponieważ w drugiej pętli je wykluczyłeś i zapomniałeś zresetować zapytanie).

Korzystanie z obiektu WP_Query ()

Utworzenie oddzielnej instancji obiektu WP_Query jest łatwe:

$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();

Zauważ, że musisz zbudować tablicę argumentów zapytania zgodnie ze specyfikacją. Aby uzyskać więcej informacji, zobacz stronę kodeksu WP_Query .

Korzystanie z get_posts ()

get_posts() to opakowanie dla osobnej instancji obiektu WP_Query . Zwrócona wartość jest tablicą obiektu postu.

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(); ?>

Aby uzyskać więcej informacji, odwiedź stronę kodeksu get_posts () .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow