kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

WordPress-Standard-Loop um Custom Post Types erweitern

Um in WordPress »Custom Post Types« auf der Website anzuzeigen verwendet man meistens den sog. »WP Query«, da hier mit geringem Aufwand festgelegt werden kann, welche »Post Types« ausgegeben werden sollen. Für den Fall, dass ihr nicht »WP Query« nutzen möchtet oder könnt, zeigen wir euch in diesem Beitrag wie ihr den WordPress-Standard-Loop um Custom Post Types erweitern könnt.

Workshops und Seminare von kulturbanause

Visual Prototyping, Responsive Design, CSS Grid & Flexbox, WordPress, Adobe XD, HTML & CSS Grundlagen, Website-Optimierung …

Jetzt Frühbucher-Rabatte sichern!

WP-Loop um Custom Post Types erweitern

Der WordPress-Standard-Loop (»The Loop«) gibt standardmäßig keine Custom Post Types (CPTs) aus, sondern immer die Beiträge, die entsprechend der Template Hierarchie festgelegt wurden. Um den Standard-Loop um CPTs zu ergänzen, müsst ihr folgendes Snippet in die functions.php eures Themes oder in ein seitenspezifisches Plugin schreiben. Die gewünschten Custom Post Types tragt ihr kommasepariert in das array ein.

<?php
function kb_add_post_types_to_loop($query) {
  if (!is_admin()) {
    if ($query->is_main_query()) {
      $query->set('post_type', array('post', 'YOUR POSTTYPE 1', 'YOUR POSTTYPE 2'));
    }
  }
}

add_action('pre_get_posts','kb_add_post_types_to_loop');
?>

Mit Hilfe der Aktion »pre_get_posts« wird nun der Loop um eure Custom Post Types erweitert.

Achtet immer darauf, dass ihr bei euren Loop-Anpassungen den Administrationsbereich mit Hilfe von »!is_admin()« ignoriert, um Fehler im Backend zu verhindern.

WordPress-Standard-Loop nur für spezielle Seiten anpassen

Soll euer Loop nicht global sondern nur auf speziellen Seiten oder Templates erweitert werden, könnt ihr die Abfrage einfach weiter einschränken. Im unten stehenden Code-Beispiel wird der Loop inklusive der hinzugefügten Custom Post Types nur auf der Startseite (Front Page) ausgegeben.

<?php
function kb_add_post_types_to_loop($query) {
  if (!is_admin()) {
    if ($query->is_main_query() && is_front_page()) {
      $query->set('post_type', array('post', 'YOUR POSTTYPE 1', 'YOUR POSTTYPE 2'));
    }
  }
}

add_action('pre_get_posts','kb_add_post_types_to_loop');
?>

Links / Quellen

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Unterstützung bei WordPress-Projekten

Unsere WordPress Agentur ist auf die Entwicklung maßgeschneiderter WordPress-Themes und -Websites spezialisiert. Wenn du Unterstützung bei der Planung, Gestaltung und Entwicklung eines Projekts benötigst, helfen wir gerne weiter.
WordPress-Leistungsangebot →

Das könnte dich auch interessieren

4 Kommentare

  1. Philipp

    Verfasst am 27. Februar 2018 um 13:05 Uhr.

    Genau die Funktion nach der ich letztens gesucht habe.

    Wenn ich das jetzt etwas weiter spinnen will und nur die Custom Post Types einer bestimmten Kategorie haben will, wie sähe das aus?

    Viele Grüße

    Philipp

    • Robert Menzel

      Verfasst am 1. März 2018 um 10:10 Uhr.

      Hallo Philipp,
      würdest du gerne in einer bestimmten Kategorie einen Custom Post Type hinzufügen oder den Standard-Loop um eine bestimmte Kategorie eines Custom Post Types ergänzen?

      Viele Grüße
      Robert

      • Philipp

        Verfasst am 2. März 2018 um 14:48 Uhr.

        Hi Robert,

        der Standard-Loop soll Posts und Custom Post Types einer Custom Taxonomy ausgeben.

        Viele Grüße

        Philipp

      • Robert Menzel

        Verfasst am 5. März 2018 um 11:28 Uhr.

        Hallo Philipp,
        an dieser Stelle würde ich den Standard-Loop durch einen WP_Query ersetzen. Hier hast du deutlich mehr Möglichkeiten in den Argumenten des Loops.

        Viele Grüße
        Robert

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.