Generator pętli w WordPress [wp_query]

Bardzo ważną funkcją w WordPressie jest ‚the_post()’, która zawiera wszystkie zmienne dotyczące wpisu lub strony. Pętla obiektu wp_query to kod PHP używany przez WordPress do wyświetlania postów. Używając pętli, WordPress przetwarza każdy wpis, który ma być wyświetlany na bieżącej stronie i formatuje go zgodnie z zadanymi kryteriami. Każdy kod HTML lub PHP w pętli będzie przetwarzany w każdym poście.


Żeby wyświetlić treść wpisu lub listę stron trzeba wykonać pętlę obiektu wp_query. Dla określonych plików (np.: page.php lub single.php) parametry pętli są z góry określone i dotyczą konkretnych danych. Co jeśli na stronie potrzebujemy informacji o niestandardowych postach lub najstarszych wpisach? Wtedy z pomocą przychodzi możliwość stworzenie własnej pętli.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// WP_Query arguments
$args = array(
    'post_type' => array( 'post' ),
    'posts_per_page' => '3',
    'order' => 'DESC',
    'orderby' => 'date',
);

// The Query
$query_news = new WP_Query( $args );

// The Loop
if ( $query_news->have_posts() ) {
    while ( $query_news->have_posts() ) {
        $query_news->the_post();
        // do something
    }
} else {
    // no posts found
}

// Restore original Post Data
wp_reset_postdata();

Zacznijmy od tablicy argumentów $args.

  1. ‚post_type’ – tablica typów postów z których chcemy skorzystać (np. post lub page)
  2. ‚post_per_page’ – ilość zwróconych postów
  3. ‚order’ – sortowanie wyników
  4. ‚orderby’ – pole wg którego sortujemy wyniki

Tablicę taką wprowadzamy jako parametr dla nowego obiektu klasy WP_Query. Wynik przypisujemy do zmiennej – w tym przypadku $query_news.

Kolejnym krokiem jest rozpoczęcie pętli. Dobrym zwyczajem jest sprawdzenie, czy nasze zapytanie zwróciło wynik. Jeżeli tak, można zająć się wyświetleniem danych. Od sprawdzenia wielkości wyniku mamy funkcję ‚have_post()’. Jeżeli funkcja zwróci wynik pozytywny rozpoczynamy pętlę. Jeżeli nie, należy opracować informację dla pustego wyniku.

Na koniec należy zresetować pętle przy użyciu funkcji wp_reset_postdata().

Inne ciekawe opcje pętli:

1
2
3
4
5
6
$args = array(
    'post_status' => array( 'publish', 'trash' ),
    's' => 'lorem ipsum',
    'paged' => '2',
    'posts_per_page' => '10',
);
  1. ‚post_status’ – tablica z dozwolonymi typami stanu postu. W tym przypadku mają być te opublikowane i wrzucone do śmieci.
  2. ‚s’ – parametr wyszukiwania, zawiera zwrot do wyszukania.
  3. ‚paged’ – strona wyników. W tym przypadku posty od 11 do 20.
  4. ‚posts_per_page’ – ile postów na stronę.

Link do generatora

Generator pętli w WordPress

1 komentarz do wpisu “Generator pętli w WordPress [wp_query]”

Dodaj komentarz