Erste Schritte mit WP_Query

Bei der Entwicklung des ersten WordPress-Plugins entstehen häufig Fragen zur Nutzung von WP_Query. Einige der gängigen Fragen möchte ich mit diesem Blog-Beitrag beantworten.

Wie kann ich alle Posts, Pages und Custom Post Types abfragen?

Innerhalb von WordPress sind intern Pages spezielle Posts. Aus diesem Grund funktioniert die nachfolgende Abfrage problemlos:

$args = array(
    'post_type' => 'any',
);

$query = new WP_Query($args);

Wie kann ich prüfen, ob meine Abfrage Seiten zurückliefert?

Auch hier gilt wieder: Da Pages intern wie Posts gehandhabt werden, funktioniert auch hier die have_posts()-Methode:

$args = array(
    'post_type' => 'page',
);

$query = new WP_Query($args);

if ($query->have_posts()) {
    // mache etwas
}

Wie kann ich das Default-Limit von 10 Posts / Pages ändern?

Einfach den posts_per_page-Parameter auf -1 setzen:

$args = array(
    'post_type' => 'any',
    'posts_per_page' => -1
);

$query = new WP_Query($args);

Durch Setzen des posts_per_page-Parameters auf -1 werden alle Posts zurückgeliefert. Natürlich kann auch eine „normale“ Zahl, wie beispielsweise 20 spezifiziert werden.

Schreibe einen Kommentar