Verständnisproblem posts_per_page

  • Guten Abend,
    ich habe ein Verständnis Problem. Ich habe schon nach antworten gesucht, aber die meisten verstehe ich wohl nicht, deshalb suche hier im Deutschen Forum nach der Erklärung und Lösung. Je mehr ich darüber gelesen habe um so weniger habe ich verstanden :)

    Ich nutze den Redux Framework und habe einen Button Set eingebaut, ich kann auswählen, wieviel Blog Posts angezeigt werden. Das funktioniert auch soweit. Nun habe ich es in der Index.php eingebaut und wenn ich hin und her schalte dann zeigt er mir auch richtig die ausgewählten Blogs an. Wenn ich z.b 4 druecke, werden mir auch nur 4 letzten News/Blogs angezeigt. Nun zu meinem Problem:

    Wenn ich jedoch auf Previous Link drücke, passiert einfach rein Garnichts, er tut so, ob er es umschaltet, aber es tut sich nichts, er bleibt einfach bei den neusten 4 News/Blogs stehen. Ich habe aber bis jetzt nur, index.php, page.php header.php, footer.php, blog-content.php erstellt und auch mit code befühlt. Vielleicht kann mir bitte jemand weiter helfen, und erklären wieso es nicht geht.

    Vielen Dank schon im Vorraus

    Hier ist mein Code:

    Einmal editiert, zuletzt von SirEctor (17. Mai 2019 um 06:48)

    • 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

  • Ich habe es leider local, aber meine komplette Index.php sieht so aus.


  • Wenn ich es jedoch über functions.php angehe, dann funktioniert es ohne Probleme. Das Problem ist, ich bekomme die Variablen von Redux Framework nicht in die functions.php reingeladen. Ich finde die lösung in der Functions.php auch besser. Weiß vielleicht wie ich die Variablen bekomme. Wenn ich in der functions.php

    PHP
    <?php global $fuemich; ?>
    'posts_per_page' => $fuemich['posts-button-set'],

    aufrufen möchte, macht er rein garnichts. Weiss jemand wie man den Fehler beheben kann, bin php und qjuery noch am lernen.

  • Dieser Code ist fehlerhaft. Wenn er so in der functions.php des Themes steht, müsste das Frontend und Backend einen Teil davon als Plaintext ausgeben, relativ weit oben in der HTML-Ausgabe, und ansonsten passiert nichts.

    Hast Du es mal mit der in #4 genannten Prüfung in der entspr. Theme-Datei versucht?

  • Nein, habe die Prüfung noch nicht ausgeführt, weil ich dachte, ich konnte es eleganter lösen und es in der funtions.php einbinden mit redux framework. Werde ich aber noch machen.

  • Bin nach wie vor nicht ganz sicher, was Du überhaupt machen willst.

    Für die Anzahl bei der Ausgabe verwendet man in WordPress üblicherweise einfach Einstellungen > Lesen > Blogseiten zeigen maximal X Beiträge.

    Für eine feinere Unterscheidung z.B. unterschiede bei Startseite oder Anzeige von Kategorien oder Suchergebnissen oder je nach Custom Post Types o.ä. wäre dieses Beispiel als Anhaltspunkt geeignet, statt der festen Zahl dort würdest Du dann wahrscheinlich Dein global und dann Deine Variable verwenden.

    Ergänzung: Für beide hier genannten Varianten ist sonst keinerlei Code-Änderung im Theme nötig, also kein extra [FONT=Courier New]WP_Query[/FONT] o.ä.

    5 Mal editiert, zuletzt von b3317133 (18. Mai 2019 um 16:41)

  • Ich weiß, dass man über die Funktion Einstellungen > Lesen > Blogseiten ganz einfach die Anzahl der angezeigten Beiträge ändern kann. Jedoch möchte ich es über Redux Framework es ändern können. Ich habe ein Segment im Redux erstellen und möchte über einen Switch einfach die anzahl der Blognachrichten anzeigen können. Wenn ich das mit dem o.g. Code es in der Index.php lösen möchte, wird mir auch die bestimmte anzahl der Blognachrichten angezeigt aber es funktioniert nicht das Vor uns Zurückblättern. Möchte ich es über functions.php lösen, funktioniert auch der vor und zurückblättern und so lange ich eine Zahl in $query->set( 'posts_per_page', 3 ); eingebe funktioniert das auch. Wenn ich aber die Variable von Redux Framwork anstatt der Zahl eingebe, funktioniert das nicht. Ich weiß nicht wie man die Variable in Funcions.php übergeben kann.

  • Poste die beiden Varianten von Deinem gesamten Code in der [FONT=Courier New]functions.php[/FONT], in dem Du [FONT=Courier New]$query->set( 'posts_per_page', 3 );[/FONT] verwendest und in dem Du Deine Variable, die nicht funktioniert, verwendest.

  • Hier ist die
    functions.php


  • Dieser Code [FONT=Courier New]mts_posts_frontpage(..)[/FONT] wird nie aufgerufen, [FONT=Courier New]add_action[/FONT] fehlt, siehe verlinkte Beispiele in #8, und anstelle des Inhalts der Variable übergibst Du einen Textstring, PHP Grundlagen dazu (google). Leider fehlt auch die Code-Variante mit der festen Zahl 3, die lt. Deiner Angabe funktioniert hätte.

    Daher kann man nur schwer rausfinden, wo das Problem liegt. Würde es auf Basis Deines Codes mal mit sowas versuchen, mit Fallback auf die WordPress Einstellung, wenn es keine Werte aus Deinem Redux Code gibt, komplett ungetestet einfach runtergetippt...

    Es sind sonst keinerlei Code-Änderung im Theme nötig, also kein extra [FONT=Courier New]WP_Query[/FONT] o.ä. Ob dieser [FONT=Courier New]Redux::init(..)[/FONT] Aufruf nötig ist und ob das die richtige Stelle ist, weiss ich nicht, dazu lies am besten die Redux Dokumentation.

    7 Mal editiert, zuletzt von b3317133 (19. Mai 2019 um 17:34)

  • Vielen Lieben dank, jetzt klappt alles, so wie es soll. Nun muss ich nur noch verstehen was da passiert.
    Und meine 2te frage ist, wieso muss der global in der function stehen und nicht ausserhalb, bzw. wieso funktioniert das dann nicht.

    Aber wie gesagt, vielen lieben Dank nochmals.

  • Links lesen, Suchmaschinen nutzen, probieren, lernen, bei Problemen die Probleme komplett schildern und Fragen komplett beantworten.

    Zur 2ten Frage siehe o.g. Link PHP Grundlagen i.v.m. Suchbegriff: Scope

Jetzt mitmachen!

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