WordPress: Loop mit pre_get_posts filtern
Der Standard-Loop kann mit pre_get_posts gefiltert werden, wobei diese Möglichkeit nur mit Bedacht gewählt werden sollte.

Durch den Einsatz des Hooks pre_get_posts
kann der Standard-Loop gefiltert werden. Diese Anpassung hat Auswirkung auf alle Loops, sowie auf das Backend, auf Feeds, Navigationen etc. Deshalb sollte man diesen Weg nur mit Bedacht wählen und durch Abfragen von vornherein einschränken.
Schulungen von kulturbanause
Intensive Trainings mit hohem Praxisbezug.
Individueller Loop mit pre_get_posts
Der Hook führt eine individuelle Funktion aus, hier im Beispiel kb_change_query
.
<?php
function kb_change_query($query) {
$query->set('cat', '-1');
}
add_action('pre_get_posts', 'kb_change_query');
?>
Mit einfachen Abfragen (Conditional Tags) kann das Beispiel sinnvoller umgesetzt werden. Nun wird der Loop nur noch gefiltert, wenn er
- nicht im Backend läuft
- wenn es der Haupt-Loop ist und
- wenn es sich um die Suchergebnisse handelt.
<?php
function kb_change_query($query) {
if (!is_admin() && !is_search() && $query->is_main_query()) {
$query->set('cat', '-1');
}
}
add_action('pre_get_posts', 'kb_change_query');
?>
Feedback & Ergänzungen – Schreibe einen Kommentar
WordPress-Projekte mit kulturbanause
Wir wissen wovon wir reden. Wir setzen WordPress seit über 10 Jahren erfolgreich ein und realisieren maßgeschneiderte Websites auf Basis dieses großartigen CMS.
WordPress-Leistungsangebot →Schulungen von kulturbanause
Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.
Übersicht Schulungsthemen →