Beiträge von ttimsch94

    Ich habe jetzt eine wenig elegante Lösung gefunden:
    - ich setze in dem Abfrage-loop die Anzahl Beiträge auf 99 (beliebige Zahl)
    - und frage in meinem Code (s. oben) die in der $query belegte Anzahl als Bedingung ab:

    Code
    function xt_modify_main_query($query) {
        $t1 = $query->get( 'posts_per_page' );    //lies die in der $Query verwendete "Anzahl Posts" aus
                                            // und verwende sie als Ausführ-Bedingung
        if (!is_admin() && in_the_loop() && ($t1==99 ) ) {    //ohne "in_the_loop()" wird alles mögliche angezeigt

    Ergebnis: es werden nur die gewünschten Beiträge in dem Loop angezeigt
    -> und auch wieder alle Header und Footer Elemente

    Vielen Dank für die Rückmeldungen - sie haben mich auf dem richtigen Weg gebracht :-).

    Grüße aus Augsburg

    Der im Link angegebene Code ist nicht für das Einfügen in [FONT=Courier New]pre_get_posts[/FONT] sondern für eigene [FONT=Courier New]WP_Query[/FONT] Abfragen. Der Link dient nur für das Nachlesen der genauen Parameter Syntax und deren Beschreibung.

    Du hast mit Deinem einfachen Copy&Paste der [FONT=Courier New]WP_Query[/FONT] Beispiele eine endlos sich selbst aufrufende Verschachtelung der [FONT=Courier New]pre_get_posts[/FONT] Action bewirkt, die endlos Speicher braucht...

    Versuche es mal mit einem Beitrag mit nur einer Kategorie und/oder schau Dir [FONT=Courier New]category__in[/FONT] an.


    Hallo b3317133,
    deine Antwort hat mir sehr geholfen und mich von einem Irrweg abgebracht :-)

    So, viel Probiererei später:
    meine Beiträge erhalten wahlweise die Hauptkategorien xkopf, xkapitel, xargument
    Dazu erhalten alle zusammengehörigen Beiträge ein gemeinsames Schlagwort "##meinSchlagwort".
    Dann habe ich in meinem Child-theme ein template erstellt, welches einen Single Beitrag (xkopf oder xkapitel) anzeigt und darunter in einem Abfrage-loop ohne Bedingung alle Beiträge aufführt.

    In dem child-theme Ordner habe ich in die functions.php folgenden Code eingesetzt:

    Das funktioniert auch tatsächlich: z.B. zu einem Beitrag der Kategorie "xkopf" werden darunter alle xKapitel-Beiträge aufgelistet - jeweils zu einem gemeinsamen Schlagwort "##meinSchlagwort".
    Allerdings wird die in dem child-Template eingerichtete Header-Navigation (Menü) nicht mehr angezeigt.
    Soweit ich mich eingelesen habe, ist ein Loop eine Grundfunktion und wird bei allen Auflistungen verwendet.
    -> wahrscheinlich verändert mein Code auch die Loop-Bedingung für das Menü.
    Was muss ich tun, damit meine Funktion wirklich nur in dem Template-Blockelement "Abfrage-loop" ausgeführt wird?

    Ich freue mich auf eure Vorschläge :-)
    Grüße aus Augsburg, Clemens

    Hallo b3317133,

    Vielen Dank für die Hinweise :-) :
    $query->set( 'category_name', 'kfz' ); // slug ist kleingeschrieben -> keine Ergebniszeilen
    $query->set( 'cat', 21 ); // Text-Zeichen weg -> kene Ergebniszeilen

    Ich habe es dann versucht mit:
    [INDENT]$query = new WP_Query( array( 'cat' => 21 ) ); //wie in deinem Link angegeben[/INDENT]
    oder
    [INDENT]$query = new WP_Query( array( 'category_name' => 'kfz' ) );[/INDENT]

    dabei kommt immer die Fehlermeldung:
    [INDENT]PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 262144 bytes) in C:\inetpub\wwwroot\wordpress\wp-includes\class-wp-query.php on line 3852[/INDENT]
    -> Speicher habe ich genug..?

    Und ja: meine Beiträge haben mehrere Kategorien und Schlagwörter

    meine Webseite ist noch nicht online wg. des Problems s.u. Aktuell läuft WordPress 6.7.1 mit twenty-twenty-five child-Theme auf lokal Windows 10 mit IIS.

    Ich habe in einem Beitrags-Template in einer Gruppe Titel und Content des KopfBeitrags stehen.

    In einem Block Abfrage-loop darunter werden alle Beiträge passend zum Kopf aufgeführt.

    Diese Loop will ich variabel verändern – nach viel googeln und Supportforen sollte es eigentlich so funktionieren:

    In der functions.php meines Child-Themes habe ich den Code eingefügt, welcher nur für ‚post_per_page‘ funktioniert .


    Was mache ich falsch? Grüße aus Augsburg

    Hallo zusammen,
    meine Webseite existiert nur lokal auf Windows 10 mit IIS. Ich werde sie erst nach der Lösung online schalten, da es vorher keinen Sinn macht. Installiert ist WordPress 6.7.1, aktiv ist Twenty Twenty-Five mit Child Theme. Hier meine Frage:

    Auf einer Start-Seite werden die Titel von Kopfbeiträgen angezeigt: Kopfbeiträge sind übergreifende Themen wie "Klimawandel", "Ukraine-Krieg"

    Wird auf so einen Titel geklickt, wird der eigentliche Kopfbeitrag angezeigt mit beschreibendem Text.

    Darunter wird eine Liste mit Titeln von Unterbeiträgen angezeigt, z.B.:

    "Klimawandel" (Kopfbeitrag)
    Klimamodelle (Unterbeiträgen)
    Klimadatendiskussion (Unterbeiträgen)
    Studien und Publikation (Unterbeiträgen)

    Wird auf so einen Untertitel geklickt, wird der eigentliche Unterbeitrag angezeigt mit beschreibendem Text. Darunter wiederum wird eine Liste mit Titeln von UnterUnterbeiträgen angezeigt, z.B.:

    "Klimadatendiskussion" (Unterbeitrag)
    Erderwärmung (UnterUnterbeitrag)
    Einfluß der Sonne (UnterUnterbeitrag)
    Studien und Publikationen (UnterUnterbeitrag)

    Wird auf so einen UnterUntertitel geklickt , wird der eigentliche UnterUnterbeitrag angezeigt mit beschreibendem Text und Diskussion.

    D.h., ich möchte eine 3 stufige Navigation erzeugen.

    Um den Aufwand gering zu halten, stelle ich mir die Logik so vor:
    [INDENT]Die Kopfbeiträge erhalten die Kategorie "xBlock",
    die Unterbeiträge "xArtikel",
    die UnterUnterbeiträge "xArgument"[/INDENT]

    Ich erstelle 2 Kategorie-Templates zu "xBlock", "xArtikel":

    Mit den "xBlock", "xArtikel"-Templates werden die Inhalte der Beiträge angezeigt

    - Darunter werden in einem Abfrage-Loop die Unterbeiträge angezeigt

    - Als Bedingung jeweils Kategorie="xArtikel" oder ="xArgument" und als weitere
    Bedingung ein Schlagwort, welches jeweils aus dem "xBlock", "xArtikel"-Beitrag ausgelesen wird.

    Beispiel:
    1. Ebene: Kopftitel Klimawandel -> Template "xBlock"
    Kopftext enthält "…#Klima#.." (evtl. in einem eigenen Feld oder unsichtbar?)
    mit Abfrage-Loop Bedingung Kategorie="xArtikel" und Schlagwort="#Klima#"

    2. Ebene nach Klick auf "Klimamodelle" s.oben -> Template "xArtikel"
    Text enthält"…#Klimamodelle#.." (evtl. in einem eigenen Feld oder unsichtbar?)
    mit Loop-Bedingung Kategorie="xArtikel" und Schlagwort="#Klimamodelle#"

    Für die unterste Ebene reicht das Template "Einzelne Beiträge", da ja nur der Beitragsinhalt angezeigt werden soll. Falls andere Taxonomien besser sind, bitte melden.

    Das Grundproblem ist also: wie kann ich die Bedingungen eines Abfrage-Loops über externe Informationen steuern?
    Ist das ohne Programmierung oder über ein Plugin machbar? Falls nicht - wie kann ich das programmieren?

    Ich hoffe, ich habe mein Probkem einigermaßen verständlich formuliert und würde mich über Lösungsvorschläge sehr freuen :-)
    mfg, Clemens