1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Lange Seiten werden nicht gesplittet

Dieses Thema im Forum "Allgemeines" wurde erstellt von Andreas 2012, 22. Februar 2021.

  1. Andreas 2012

    Andreas 2012 Well-Known Member

    Registriert seit:
    25. November 2012
    Beiträge:
    71
    Zustimmungen:
    0
    Hallo Wordpress-Freunde,

    ich habe mir einen Custom Post Type namens "Person" in einem TwentyTwenty-Child-Theme erstellt. Jeder Person in meiner Datenbank habe ich über benutzerdefinierte Felder Daten wie Geburtstag, Geburtsort etc. zugefügt, die Personendaten der einzelnen Person gebe ich dann über ein eigenes Template aus.

    Nun möchte ich die Personen bzw. Auszüge der jeweiligen Posts in verschiedenen Listen ausgeben, die nach diversen Kriterien wie Geburtsdatum, Geburtsort etc. generiert werden. Das habe ich bislang über Kategorien gelöst. D.h., dem Custom Post Type "Person" habe ich Kategorien wie "Geburtsort", "Sternzeichen", "Hobby" etc. zugeordnet und kann diese dann bequem über die Navigation der Website und den entsprechenden Link aufrufen, z.B. www.mydomain.de/geburtsort/ aufrufen. Überlange Seiten werden dann je nach "Einstellungen -> Lesen" in mehrere Seiten gesplittet.

    Nun kann ich aber leider nicht zu jeder Personen-Info eine Kategorie erstellen. Über die benutzerdefinierten Felder "geburtsdatum" und "sterbedatum" z.B. generiere ich automatisch das Alter der Person, welches sich ja ständig ändert. Um eine Liste mit Personen, die ein bestimmtes Alter haben, auszugeben, habe ich die Datei content.php zu content-alter.php dupliziert, welche über eine Bedingung aus der singular.php aufgerufen wird. In der content-alter.php habe ich eine query angelegt, um die Personen abzurufen:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Dieser Code klappt soweit gut. Die Altersberechnung funktioniert und es werden die ersten 20 Personen ausgegeben. Nur: es werden keine weiteren Seiten angezeigt, obwohl es genug gibt! Mit manueller Eingabe von "<!–nextpage–>" im template ändert sich auch nichts.

    Erste Frage: Wie kann ich eine korrekte Seitensplittung erreichen?

    Zweite Frage: Oder mache ich einen prinzipiellen Denkfehler, was die Verwendung der content.php angeht? Die wird doch eigentlich für die Generierung des einzelnen Posts benötigt, oder? Welche Möglichkeiten gibt es, meine benutzerdefinierte Liste nach dem Schema einer Kategorie-Ausgabe zu generieren und zu splitten? Wo bzw. wie findet überhaupt in Wordpress die Codierung für die Listen-Generierung der Kategorien statt?

    Ich würde mich sehr freuen, wenn mir jemand zu meinem Problem einen Denkanstoß geben könnte.

    Vielen Dank im voraus!
    Andreas
     
  2. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.636
    Zustimmungen:
    1.778
    Der Code ermittelt explizit die ersten 20 und enthält keine weitere Funktionalität für eine sog. "Pagination". Schau mal z.B. hier (google).

    Welche Template Dateien z.B. für eine Kategorie Ausgabe verwendet werden, kann man in der Template Hierarchy sehen.

    Um Einfluss auf die Ausgabe einer Kategorie Ausgabe o.ä. (in WordPress auch genannt "Archivseite") zu nehmen, kann man z.B. die pre_get_posts Action verwenden, das erste Codebeispiel zeigt z.B. eine Beschränkung auf klassische WordPress Kategorien, weiterer Code weiter unten wie man meta Abfragen einfügen kann.
     
    #2 b3317133, 22. Februar 2021
    Zuletzt bearbeitet: 22. Februar 2021
    Andreas 2012 gefällt das.
  3. Andreas 2012

    Andreas 2012 Well-Known Member

    Registriert seit:
    25. November 2012
    Beiträge:
    71
    Zustimmungen:
    0
    Vielen Dank für deine Tipps, die mir sehr geholfen haben :)

    Den Vorschlag mit pre_get_posts habe ich leider nicht umgesetzt bekommen. Die Funktion selbst ist nicht das Problem, aber wie und wo wird sie angewendet? Das habe ich nicht herausfinden können.

    Aber egal, der Link mit der "Pagination" hat mir dann weitergeholfen! Den Code auf der Seite https://blog.kulturbanause.de/2016/03/wp_query-mit-pagination/ habe ich entsprechend abgewandelt und kann nun tatsächlich die Vorher-/Nachher-Links generieren :D
    Kannst du mir jedoch bei der Gelegenheit noch eines erklären? Wofür und an welcher Stelle genau verwendet man setup_postdata( $post ) und wp_reset_postdata()?
     
  4. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.636
    Zustimmungen:
    1.778
    Vor jedem Query in WordPress. Beispiel: example.com/category/allgemein/ zeigt mit dem Codeblock 15 Beiträge pro Seite.
    Wenn man eine eigene Loop mit Posts hat in der man z.B. the_title() o.ä. verwenden will, Beispiel, wobei dieses Beispiel im foreach $post statt $mypost verwenden sollte.
     
  5. Andreas 2012

    Andreas 2012 Well-Known Member

    Registriert seit:
    25. November 2012
    Beiträge:
    71
    Zustimmungen:
    0
    Aah, alles klar! Dann vielen Dank noch mal für deine Hilfe und einen schönen Abend :)
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden