TwentyTen: Anzahl Beiträge in der Kategorieansicht

  • Moin,

    ich erstelle gerade ein Fotoblog, basierend auf TwentyTen.
    Jede Blogseite hat 1 Artikel (Einstellungen-Lesen-Blogseiten zeigen maximal...)
    Soweit, so gut.

    In der Kategorie- oder Schlagwortansicht wird dann aber auch nur 1 Artikel gezeigt (Excerpt); in diesen Ansichten möchte ich aber gerne 10 Artikel pro Seite anzeigen lassen.

    Ich steige durch den (neuen) Loop diesbezüglich noch nicht richtig durch; ich vermute mal, dass das die richtige Stelle sein dürfte, oder?

    Daher frage ich euch um Rat, wie ich im Blog 1 Artikel, aber in der Kategorie- oder Schlagwortansicht abweichend vom Standard 10 Artikel (Excerpt) anzeigen lassen kann.

    Danke und viele Grüße, Bernd

    • 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

  • Die allgemeine Einstellung, wieviel Posts angezeigt werden sollen, ist -- nunja -- recht allgemein. :lol:

    Möchtest Du nur für eine bestimmte Betrachtung Deines Blogs die Anzahl der ausgegebenen Artikel abweichend festlegen, solltest Du ein eigenes Template verwenden, in das Du zusätzlich zur Loop den Befehl query_posts einbaust:

    PHP
    <?php query_posts("posts_per_page=1"); ?>
      <?php get_template_part( 'loop', 'index' ); ?><!-- Die Loop-->
    <?php wp_reset_query(); ?>

    Vielleicht hilft es Dir ja auch, dass man unterschiedliche Templates für

    • eine Startseite
    • eine bestimmte Katgeorie
    • Seiten
    • Beiträge eines bestimmten Autoren
    • einem bestimmten Schlagwort ("Tag")
    • etc.


    erstellen kannst, die dann ohne weiteres Zutun in der jeweiligen Ansicht verwendet werden.
    Oder Du schreibst ein eigenes Template (fotoblog.php) und weist das einer statischen Seite ohne Inhalt (Seite: Fotoblog) zu. Dann werden, entsprechend der Angaben in query_posts, auf der Seite "Fotoblog" nur die (und nur so viel) Artikel ausgegeben.

    Üer die Loop und besondere Abfragen über query_posts ist übrigens gerade ein anschaulicher Video-Podcast von Chris Coyier veröffentlich worden. Sehenswert, allerdings auf englisch.

  • Moin,

    Bego, danke erst einmal, das habe ich verstanden (auch das Video ist übrigens wirklich sehenswert).

    Wenn ich

    Code
    query_posts('posts_per_page=10');

    in die category.php einsetze, sieht das ungefähr so aus:

    PHP
    <?php query_posts('posts_per_page=10');
    
    
                    /* Run the loop for the category page to output the posts.
                     * If you want to overload this in a child theme then include a file
                     * called loop-category.php and that will be used instead.
                     */
                    get_template_part( 'loop', 'category' );
                    ?>

    Nun werden max. 10 Beiträge in der Kategorieansicht angezeigt, allerdings leider ALLE Kategorien, und nicht die, die ich ausgewählt hatte.
    Und es geht dadurch die Darstellung als "Excerpt" verloren; alle Artikel (die letzten 10) werden vollständig angezeigt.

    Im Loop sieht das derzeit so aus (ich hoffe, es ist die richtige Stelle):

    PHP
    <?php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
                <div class="entry-summary">
                    <?php the_excerpt(); ?>
                </div><!-- .entry-summary -->

    Ich habe auch im Loop versucht, query_posts zu verwenden, aber das funktionierte so auf Anhieb nicht.

    Es wäre mir am liebsten, wenn ich die Anzahl der anzuzeigenden Artikel direkt im Loop (loop.php) umsetzen könnte.

    So richtig läuft´s noch nicht, was tun?

  • Update:

    Ich hab´s hinbekommen; Bego hatte mich auf den richtigen Pfad gebracht.

    Ohne entsprechende Variable ignoriert query_posts alle vorhanden Argumente (beispielsweise den übergebenen Kategorienamen); diese kann man aber übergeben.

    Die Code-Referenz von WordPress brachte schließlich die Lösung:

    PHP
    <?php
                        global $query_string;
                        query_posts($query_string.'&posts_per_page=10');
    
    
                     
                    get_template_part( 'loop', 'category' ); ?>
                    <?php wp_reset_query(); ?>

    Danke!

  • Das geht noch ein bisschen durcheinander ...

    Alsoooo ... Gehen wir mal davon aus, Du hast fünf Artikel mit Kategorie "Aktuell", die Du anzeigen möchtest. Unter Einstellungen hast Du eingestellt, dass üblicherweise 10 Artikel angezeigt werden sollen. Was nun?

    Kopier doch mal die index.php und nenn die Kopie [FONT=Courier New]meine_abfrage.php[/FONT]. Als nächstes änderst Du den Namen in dem Kommentar (erste Zeilen von [FONT=Courier New]meine_abfrage.php[/FONT]) in "Meine Abfrage".

    Jetzt erstellst Du eine neue Seite und weist dieser Seite abweichend nicht das Standardtemplate sondern "Meine Abfrage" zu. Die Seite erhält nur eine Überschrift ("Meine Auswahl lustiger Beiträge") und keinen Inhalt ("nix" im Editor-Fensterchen).

    Wenn Du jetzt die neue Seite aufrufst, siehst Du erstmal ... nichts. (Logisch, ist ja auch kein Text eingegeben.) Statt dessen wollen wir ja auch die fünf Artikel aus unserer Datenbank abrufen und anzeigen lassen. Und hier kommt query_posts zum Einsatz!

    In deinem Template meine_abfrage.php ergänzt Du unmittelbar vor der Loop:

    PHP
    query_posts('posts_per_page=5&category_name=Aktuell');

    Nun sollten auf der Seite "Meine Auswahl lustiger Beiträge" fünf Artikel der Kategorie "Aktuell" angezeigt werden. Es gibt noch eine Reihe weiterer Abfragekriterien, z.B. Sortierreihenfolge, Autor, etc. Mehr Infos gibt's -- wie sollte es anders sein -- im Codex.

  • Ja, verstanden.
    Aber auch in deinem Beispiel ist die Kategorie ja "fest verdrahtet"; im Blog muss aber der Kategoriename/id an den Loop übergeben werden.

    Unsere Beiträge haben sich überschnitten, das Problem konnte ich mit deiner Hilfe und dem Codex lösen, wie oben beschrieben.

    Danke!

    Viele Grüße, Bernd

Jetzt mitmachen!

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