Pętla (the loop) jest jednym z fundamentów systemów CMS. Nie inaczej sytuacja wygląda w WordPress. Pętla umożliwia szybkie przeszukanie treści serwisu i wybranie z niej potrzebnych składników. W WordPress istnieje wiele dodatkowych funkcji, które dodatkowo ułatwiają korzystanie z pętli. Za pomocą kilku prostych funkcji można łatwo wewnątrz pętli wyciągnąć takie dane jak tytuł, treść posta, miniaturka czy link. Najprostszym przykładem zastosowania pętli jest:

 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
	<h2><?php the_title(); ?></h2>
	<?php the_post_thumbnail(); ?>
	<?php echo get_the_excerpt(); ?>
	<a href="<?php the_permalink(); ?>">READ MORE</a>
<?php endwhile; else: ?>
	<p>Sorry, no posts to list</p>
<?php endif; ?>

Pokrótce objaśnię poszczególne linie kodu (cyfra odpowiada numerowi wiersza):

  1. duża część pętli – instrukcja która sprawdza czy są posty, a jeżeli są to wykonuje się tyle razy ile jest postów dając tym samym dostęp do wnętrza postów
  2. funkcja WordPressa the_title(), która wyciąga tytuł posta i umieszczona jest w nagłówku H2
  3. funkcja WP the_post_thumbnail(), która wyciąga grafikę (miniaturkę) posta i wyświetla ją
  4. funkcja WP get_the_excerpt(), pobiera część treści posta i wyświetla ją (stosowany przy listingu wielu postów)
  5. funkcja WP the_permalink(), pobiera link do posta – umieszczona jest wewnątrz <A HREF> – umożliwi to nadanie dynamicznego linku do READ MORE
  6. koniec pętli i jeżeli nie było żadnych postów to wyświetlenie akcji zawartej poniżej
  7. w tym wypadku jest to tekst „Sorry, no posts to list”, ale może tu być jakakolwiek inna akcja
  8. zakończenie warunku

Pętla the loop WordPress

Prawdziwe jednak możliwości pojawiają się dopiero, gdy przed wyświetleniem postów będzie można nadać tej pętli warunki. Przedstawię tutaj tylko kilka możliwości, ponieważ jest ich bardzo dużo a po więcej polecam anglojęzyczną stronę WordPressa:

order: – sortowanie wyniku działania

  • ASC – narastające (1,2,3; a,b,c)
  • DESC – malejące (3,2,1;c,b,a)

orderby – kategoria według, której posty będą sortowane

  • author – autor
  • title – tytuł
  • name – tzw. post slug czyli końcówka linku indywidualna dla danego posta
  • date – data
  • rand – losowo
  • comment_count – liczba komentarzy

Przykład użycia pętli, która losuje 5 postów i je wyświetla. Nowością, są pierwsze linijki, w których określone zostały warunki wyciągnięcia postów.

<?php
$args = array (
	'orderby'        => 'rand',
	'posts_per_page' => 5,
);
$posty = new WP_Query($args);

while($posty->have_posts()) :
	$posty->the_post();
?>
<H1><?php the_title(); ?></H1>
<H4>Autor: <?php the_author(); ?> , <?php the_date(); ?></H4>
<div><?php the_content(); ?></div>
<?php endwhile; ?>

Zmienne $args i $posty, są wymyślone i mogę tu być dowolne nazwy natomiast w drugiej części pojawiły się kolejne funkcje WordPressa, których znaczenie jest następujące:

  • the_author() – pobiera autora posta
  • the_date() – pobiera datę publikacji posta
  • the_content() – pobiera całego posta włącznie z ewentualnymi zdjęciami