Anzeige von unterschiedlichen Anzahl der Beitrage auf Startseite und Kategorie Seite

  • Hallo,

    ich habe folgende Einstellungen für die Startseite:

    Zitat


    Anzeige: Deine letzten Beitäge
    Zeige die letzten: 6



    Diese Einstellung habe ich deshalb vorgenommen, weil ich auf meiner Startseite immer die 6 neuesten Einträge zeigen möchte.

    So nun zum eigentlichen Problem.
    Ich möchte auf meiner Kategorie Seite aber alle Beiträge der Kategorie zeigen!
    Momentan zeigt er mir nur 6 letzten / neuesten Beiträge und dadrunter ist "ältere Beiträge" Link, welche dann zu den restlichen (alten) Beiträgen führt.

    Wie kann ich also WP / WP Template so einstellen, dass auf der Startseite nur 6 neuesten Beiträge zeigen, und zeitgleich in der Kategorie Ansicht alle Beiträge der Kategorie anzeigen?

    Vielen Dank für die Hilfe!

    • 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

  • Zum einen benötigst du ein Kategorie-Template, z.B. eine archive.php oder category.php. Falls dein Theme keine hat, einfach den Inhalt de rindex.php kopieren und entsprechend anpassen. Mehr hier:
    Template Hierarchy « WordPress Codex

    In dieser schreibst du vor den Loop die Anweisung query_posts() mit dem Parameter posts_per_page:

    PHP
    <?php query_posts($query_string . '&posts_per_page=-1'); ?>


    Das gibt dir alle Beiträge dieser Kategorie auf 1 Seite aus. Mehr zu query_posts() hier:
    Template Tags/query posts « WordPress Codex

    Mehr liefert auch die Forensuche unter den angegebenen Stichworten.

  • Klappt wunderbar :-)

    noch eine andere Frage:
    wie kann ich denn category_nicename per echo ausgeben?

    Zitat

    echo category_nicename();

    funktioniert leider nicht :-(

  • Ich werds nachher testen, und berichten obs funktioniert.

    Wofür ich das brauche? :-)
    Ich möchte, dass wenn man auf die Kategorie klickt, erst die Kategorie Description (Beschreibung) erscheint und dahinter Kategorie spezifiche Bilder. Diese Bilder werde ich auf dem Server als

    Zitat


    http://www.domain.tld/images/[COLOR=#000000][FONT=Courier New][COLOR=#0000cc]<?php [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#000000]$category [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#0000cc]get_the_category[/COLOR][/FONT][FONT=Courier New][COLOR=#006600](); [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#006600]echo [/COLOR][COLOR=#0000cc]$category[/COLOR][COLOR=#006600][[/COLOR][COLOR=#0000cc]0[/COLOR][COLOR=#006600]]->[/COLOR][COLOR=#0000cc]cat_nicename[/COLOR][/FONT][FONT=Courier New][COLOR=#006600]; [/COLOR][/FONT]
    [FONT=Courier New][COLOR=#0000cc]?>_01.jpg[/COLOR][/FONT][/COLOR]

    ablegen :-)

    So brauchen diejenigen die die Kategorien pflegen, nur Bilder mit category_nicename identischen Namen auf dem FTP hoch zu laden.

    Falls es eine einfachere Methode existiert, nur herdamit :-)

  • Hallo marX,

    so nach langem hin und her testen, habe ich entdeckt, dass "get_the_category" nur gültig innerhalb des Loops ist, was in meinem Fall total daneben geht, da ich es ausserhalb des Loops brauche.

    Ich möchte, dass wenn man auf die Kategorie klickt, erst die Kategorie Description (Beschreibung) erscheint und dahinter Kategorie spezifiche Bilder.
    Und im Loop würde er mir für jeden Beitrag das anzeigen, was ich nicht möchte...

    Hoffe du kannst mir ein anderen Lösungsweg nennen. danke

  • Die beste Lösung ist wohl, den Loop soweit auszudehnen. Eine Idee wäre, das Kategorie-Bild innerhalb des Loops auszugeben, und abzuprüfen, dass es nur 1x ausgegeben wird, etwa so:

    PHP
    <?php $firstPost = true; ?>
    <?php while( have_posts() ) : the_post(); ?>
      <?php if( $firstPost ) : ?>
        $category = get_the_category();
        echo "http://www.example.org/images/{$category[0]->cat_nicename}_01.jpg";
        $firstPost = false;
      <?php endif; ?>
      <!-- more loop stuff -->
    <?php endwhile; ?>

    Eine andere Möglichkeit wäre, den ersten Beitrag vor dem Abruf mit the_post() zu holen, den Kategorie-Slug ermitteln und den Loop mit rewind_posts() zurückzusetzen. Mehr: Function Reference/WP Query « WordPress Codex

  • Danke marX,

    werde mir mal deine Lösung genauer anschauen.

    Ich habe aber schon eine Lösung glaub ich gefunden:

    Zitat

    <?php echo(get_category_parents($cat, FALSE, '', TRUE)); ?>

    Die kann ich gut einsetzen, da ich nur eine Kategorie Ebene benutze.

    Bei mehreren würde ich allerdings Probleme haben ;-)

    cyou

  • ich mache das so

    category.php vom default theme zb

    oberhalb ganz ganz oben


    PHP
    <?php get_header(); ?>
    <?php
     $categoryvariable=$cat; // assign the variable as current category
     $query= 'cat=' . $categoryvariable. '&showposts=-1'; // concatenate the query
     query_posts($query); // run the query
     ?>
    .....

Jetzt mitmachen!

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