• chrisesch

    (@chrisesch)


    Hallo zusammen,

    ich komme einfach nicht dahinter wie ich durch den Aufruf einer Kategorie alle Beiträge aufliste die der Kategorie zugeordnet sind. Ich benutze das aktuelle theme twentytwentythree.

    In einem Kategorie template habe ich dafür Blöcke mit Abfrageloop mit Beitragsbild/ Beitraggstitel / Beitragsauszug plaziert. Das führt aber leider nur dazu das nur einer, und zwar der jüngste Beitragsauszug angezeigt wird. Ich möchte aber das alle Beiträgsauszüge oufgelistet werden die einer Kategorie zugordnet wurden.

    Bei einer classic site habe ich das schon mehrfach realisiert indem ich dem menu eine Kategorie zugefügt habe. und dann sah ich beim aufruf des links im frontend alle Beiträge untereinander aufgeführt die diese Kategorie beiinhaltet haben.

    Jetzt mit Blocks kriege ich es einfach nicht hin.

    Jeder Tipp der mich weiterbringt ist sehr willkommen

    Chris

Ansicht von 15 Antworten – 1 bis 15 (von insgesamt 16)
  • Moderator Hans-Gerd Gerhards

    (@hage)

    Hallo,
    ich habe dazu vor kurzer Zeit einen Beitrag geschrieben: Template für Kategorien beim Full Site Editing (FSE) und Verwendung von Block Themes. Der Beitrag dürfte vermutlich hilfreich für dich sein.

    Viele Grüße
    Hans-Gerd

    Moderator Bego Mario Garde

    (@pixolin)

    Um die Beiträge einer Kategorie anzuzeigen, kannst du in Design > Editor > Template-Teile > Header im Navigationsmenü einen Link zur Kategorie einfügen. Dazu klickst du das Navigationsmenü an, klickst auf das (+)-Icon und gibst im Suchfenster die ersten Buchstaben der Kategorie ein:

    Screenshot Einstellungen
    (zum Vergrößern anklicken)

    Ruft nun jemand den Link auf, wird das Archiv der ausgewählten Kategorie angezeigt.

    Möchtest du die Beiträge nicht als Raster, sondern klassisch untereinander anzeigen, öffnest du das Template „Archiv“ und änderst die Formatierung des Abfrage-Loop:

    Screenshot Einstellungen
    (zum Vergrößern anklicken)

    In der rechten Spalte sollte aktiviert sein, dass der Block Abfrage-Loop die „Abfrage vom Template“ übernimmt – dadurch, dass du einen Link zu einem Kategorie-Archiv aufrufst, werden automatisch alle Beiträge der Kategorie mit dem Archiv-Template ausgegeben.

    Möchtest du auf der Archivseite z.B. zusätzlich die drei neuesten Beiträge ausgeben, kannst du einen weiteren Block Abfrage-Loop einfügen, der eine individuelle Abfrage wiedergibt.

    Thread-Starter chrisesch

    (@chrisesch)

    Vielen Dank für die Hinweise!

    @hage:
    nicht das abrufen der Kategorie ist mein Problem, sondern das darauf hin nur

      ein Beitrag (der jüngste) gezeigt wird und nicht
      alle Beiträge die diese Kategorie haben.

      zB.:

    • Kategorie A hat 10 Beiträge.
      beim abruf der Kategorie (wie zB von @pixolin beschrieben wird aber leider nur der erste, jüngste Beitrag zur Kategorie angezeigt.
    • Mein Ziel ist alle 10 Beiträge der Kategorie A anzuzeigen
    • Diese Antwort wurde geändert vor 2 Jahren von chrisesch.
    • Diese Antwort wurde geändert vor 2 Jahren von chrisesch.
    • Diese Antwort wurde geändert vor 2 Jahren von chrisesch.
    Moderator Bego Mario Garde

    (@pixolin)

    Hast du denn im Template für den Abfrage-Block „Abfrage vom Template übernehmen“ ausgewählt? (siehe Nachtrag oben)

    Die Beiträge der Kategorie sind auch alle veröffentlicht, also nicht im „Entwurf“?

    Thread-Starter chrisesch

    (@chrisesch)

    Ja, für den Abfrage-loop ist „Abfrage vom Template übernehmen“ aktiviert.
    Beiträge sind veröffentlicht.
    Auf Listenansicht für Abfrage-Loop ist aktiviert.

    Auffällig ist das in der Ausgabe der Kategorie, als nach klick im Navigationsmenu auf die Kategorie, immer nur der jüngste Beitrag gezeigt wird.

    Der Abfrage loop wird offensichtlich nur einmal ausgeführt und nicht sooft wiederholt bis das kein weitere Beitrag zu der Kategorie mehr vorhanden ist …

    Moderator Bego Mario Garde

    (@pixolin)

    Du hast auch nicht zufällig unter Einstellungen > Lesen die Anzahl der Beiträge auf 1 gesetzt? Oder verwendest ein Plugin/eine eigene Funktion, mit der die Ausgabe begrenzt wird?

    Moderator Hans-Gerd Gerhards

    (@hage)

    @chrisesch

    nicht das abrufen der Kategorie ist mein Problem, sondern das darauf hin nur
    ein Beitrag (der jüngste) gezeigt wird und nicht alle Beiträge die diese Kategorie haben.

    genau das habe ich versucht, in dem Beitrag zu beschreiben. Das funktioniert auch, wie du auf der folgenden Website sehen kannst, die ich gerade noch mal extra anhand des Beitrags (Anleitung) erstellt habe.

    Vielleicht wird es mit den nachfolgenden Screenshots klarer (bei Klick auf das Bild, wird das Bild vergrößert):

    Templates

    … und hier das Template für Buildung:

    Template Building

    Viele Grüße
    Hans-Gerd

    Thread-Starter chrisesch

    (@chrisesch)

    nochmals vielen Dank für die detailierten Hinweise!!

    ich habs: ich habe nach dem abfrage loop direkt mit <Beitragsbild> B<eitragstitel> <Beitragsauszug> etc angefangen.

    Was bei mir fehlte war das ganze nach dem <Abfrage loop> ins <Beitragstemplate“ zu plazieren.

    Jetzt funktionierts wie ich es wollte: alle Beiträge werden beim Abruf einer Kategorie untereinander aufgelistet.

    Gibts vielleicht noch einen Tip wie man die Reihenfolge der Beiträge verändern kann?

    Ich freue mich jedesmal wenn mir weitergeholfen wird. Vielen Dank fürs teilen der Hilfe!

    Chris

    Moderator Hans-Gerd Gerhards

    (@hage)

    Hallo,
    freut mich, dass es jetzt klappt.

    Gibts vielleicht noch einen Tip wie man die Reihenfolge der Beiträge verändern kann?

    Kannst du das bitte noch erläutern?

    Viele Grüße
    Hans-Gerd

    Moderator Bego Mario Garde

    (@pixolin)

    Statt chronologisch z.B. alphabetisch nach Titel?

    Dazu kannst du eine Funktion mit dem Hook pre_get_posts (umgangssprachlich: „bevor ich die Beiträge abrufe“) nehmen, die du z.B. als Code Snippet einbindest, sinngemäß:

    add_action( 'pre_get_posts', 'kategorie_dingsda_sortiert' );
    function kategorie_dingsda_sortiert( $query ) {
        if ( $query->is_main_query() && $query->is_archive('dingsda') ) {
                $query->set('orderby', 'title');   
                $query->set('order', 'ASC'); 
        }       
    }

    Deine Kategorie wird anders als dingsda heißen. 😉

    Thread-Starter chrisesch

    (@chrisesch)

    Ich arbeite an einer art Portfoilio in dem zu bestimmten Themen (Kategorien) Beiträge aufgelistet werden.

    Standard ist das die Beiträge nach ihrem entstehen gelistet werden. Also der jüngste Beitrag ist als erster zu sehen.

    Für meinen Zweck müsste es jedoch so sein das ich
    a.: entweder nach im Artikel beschriebenen Jahrgängen , oder
    b.: auch manuell die Reihenfolge verändern können muß.

    Ich sehe leider nirgends in den settings etwas mit dem ich die sortierfolge verändern kann. Vielleicht übersehe ich da nur was …

    Chris

    Moderator Hans-Gerd Gerhards

    (@hage)

    Hallo,
    du könntet das Beitragsdatum (post date) jeweils so ändern, dass die Ordnung geändert wird. Das ist allerdings keine schöne und auch aufwendige Lösung.

    Alternative wäre vielleicht das Plugin GenerateBlocks. Da besteht die Möglichkeit, zumindest die Ordnung zu ändern (DESC), siehe hier.

    Das Plugin GenerateBlocks setze ich mittlerweile häufiger ein, weil es nur wenige zusätzliche oder alternative Blöcke anbietet und damit leichtgewichtig ist.

    Oder eben eine Lösung in der Art, wie Bego sie beschrieben hat.

    Viele Grüße
    Hans-Gerd

    Thread-Starter chrisesch

    (@chrisesch)

    danke, werde mir generate blocks mal ansehen

    C

    Moderator Bego Mario Garde

    (@pixolin)

    du könntet das Beitragsdatum (post date) jeweils so ändern

    Örks. 😛

    Dann lieber mit Custom Fields.

    Moderator Hans-Gerd Gerhards

    (@hage)

    Dann lieber mit Custom Fields.

    ja, ja. Du hast ja recht – aber warum einfach, wenn es kompliziert geht 😁

Ansicht von 15 Antworten – 1 bis 15 (von insgesamt 16)
  • Das Thema „alle Beiträge einer Kategorie anzeigen“ ist für neue Antworten geschlossen.