Auflisten einer Kategorie auf Seite

  • Hallo, wer kann mir helfen?

    Ich lasse in der page.php wie folgt die Kategorie-Beiträge auflisten:

    PHP
    <?php if (is_page('3')) { // ID der gewünschten Seite ?>
     
     <?php wp_cat_posts(11); ?>
     
     <?php } elseif (is_page('9')) { // ID der gewünschten Seite ?>
    
    
     <?php wp_cat_posts(7); ?>
     
    <?php } ?>

    Das klappt soweit! Nun habe ich in der single.php das RustAside-Plugin als Subheadline implementiert.

    PHP
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <div class="postHead"> <h2 class="posttitle"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
    <?php ShowRustAsides(); ?></div>

    Und dort erscheint auch die sogenannte "Subheadline". Aber eben nicht in der Auflistung in der page.php.

    Was muss hinein, damit zu den aufgelisteten Posts, das jeweile RustAside "subheadline" mit aufgelistet wird?

    Ich würde mich sehr freuen, wenn mir jemand weiterhelfen könnte.

    Liebe Grüße, Matze

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • <?php wp_cat_posts(11); ?>


    Das ist aber keine Standard-WP-Funktion, oder? Plugin?

    Ansonsten schau dir mal query_posts() an, damit solltest du zum Ziel kommen. Also in etwa so:

    PHP
    <?php if (is_page('3')) { // ID der gewünschten Seite ?>
     
     <?php query_posts('cat=11'); ?>
     <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <div class="postHead"> <h2 class="posttitle"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
    <?php ShowRustAsides(); ?></div>
     
    <?php } ?>
  • Hej danke, das mit query_posts() funktioniert. Nun greift das aber auf den Loop der Page zurück, was bestimmt richtig ist. Wie ist es möglich WP zusagen, dass <?php the_content ?> für die aufgelisteteten Beiträge ausgeschlossen werden, aber der Content für die Seite angezeigt bleibt?

    Ich wollte nämlich so eine kleine Beschreibung mit Titel oben drüber und dann unten drunter die aufgelisteten Headlines der gewählten Kategorie.

    Liebe Grüße, Matze

  • Ich vermute mal, du muss neue Query-Objekte anlegen, um das originale Query-Objekt (das normale für die Seite) nicht zu überschreiben. Ein Beispiel:

    PHP
    <?php $my_query = new WP_Query('category_name=special_cat&showposts=10'); ?>
    
    
    <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
      <!-- Do special_cat stuff... -->
    <?php endwhile; ?>


    Mehr hier:
    The Loop « WordPress Codex

    Ansonsten kommt es natürlich nur darauf, an, was du in den jeweiligen Loops ausgeben möchtest - also jeweils zwischen while() und endwhile.

  • Danke für den Tipp, hab gemerkt, dass der Kategorie-Aufruf bei mir innerhalb des Loops stand... :oops: Nun habe ich ein Behilfs-Template angelegt und rufe es so auf. Aber gibt es da auch eine andere Lösung, wie ich die gewählte Kategorie automatisch abfragen kann, weiß nicht weiter was ich angeben muss?

    PHP
    <?php $my_query = new WP_Query('cat=XX&showposts='); ?>

    Liebe Grüße, Matze.

  • Aber gibt es da auch eine andere Lösung, wie ich die gewählte Kategorie automatisch abfragen kann, weiß nicht weiter was ich angeben muss?


    Das Query-Objekt hat dieselben Parameter wie query_posts(). Du kannst den Kategorienamen (category_name) übergeben, oder die ID (cat). (Bei WP 2.5 ist die ID standardmäßig ausgeblendet, siehe hier). Für die weiteren Parameter siehe Doku (dt.).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!