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. http://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:
$args = array('post_type' => 'person', 'posts_per_page' => 20, 'meta_key' => 'geburtsdatum', 'order' => 'ASC',
'meta_query' => array(
array('relation' => 'AND', array('key' => 'geburtsdatum', 'value' => array($start, $end),
'compare' => 'BETWEEN', 'type' => 'DATE'),
array('key' => 'todesdatum', 'value' =>'0000-00-00', 'compare' => '=')
) ) );
$alter = new WP_query( $args );
if ( $alter->have_posts() ) :
while ( $alter->have_posts() ) : $alter->the_post();
setup_postdata( $post );
?>
<article ... >
<header ... >
...
</header>
</article>
<? endwhile;
wp_reset_postdata();
endif;
Alles anzeigen
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