How-To Rezensionsindex Part III:
Automatisierter Index – Sinnvollere Sortierung

DISCLAIMER: Ich habe keine Ahnung von Webdesign, Programmieren und Co. Alles, was ich habe, ist ein bisschen Übung darin, mit Hilfe von Google und Stackoverflow das zusammen zu basteln, was ich gern auf meiner Website hätte. Vermutlich (sicherlich) geht das in 9 von 10 Fällen einfacher und besser und ich übernehme daher auch absolut keine Garantie für irgendwas von dem, was hier steht!

Willkommen zurück! Heute geht es darum den Rezensionsindex, den wir in Part II gebastelt haben, sinnvoll zu sortieren. Denn bislang zeigt er einfach nur alle Rezensionen in der Reihenfolge an, in der ihr sie veröffentlicht habt. Das macht natürlich wenig Sinn und daher zeige ich euch jetzt ein paar Möglichkeiten wie ihr das ändern könnt.

Dafür braucht ihr wieder eure Template-Datei und müsst dann die wp_query darin finden:

<?php $my_query = new WP_Query( array( 'category_name' => 'rezensionen',
'posts_per_page' => -1
) );
while ( $my_query->have_posts() ) : $my_query->the_post(); { ?>                                  


<li><a href="<?php echo esc_url( get_permalink() ); ?>"><?php the_title(); ?></a></li>


<?php } endwhile; ?>

Sinnvollerweise sollten die Beiträge alphabetisch nach dem Nachnamen des Autors sortiert sein. Dafür gibt es eine ganz eine Variante, wenn ihr – wie ich – eure Rezensionen nach dem Schema „Nachname, Vorname: Buchtitel“ benennt und die Permalinks ebenfalls entsprechend aussehen (also z.B. buch.blog/rezension/autor-titel). Dann braucht ihr nämlich einfach nur zwei Zeilen einzufügen und schon sollten eure Beiträge alphabetisch nach Autor geordnet sein:

<?php $my_query = new WP_Query( array( 'category_name' => 'rezensionen',
'orderby' => 'title',
'order' => 'ASC',
'posts_per_page' => -1
) );
while ( $my_query->have_posts() ) : $my_query->the_post(); { ?>                                  


<li><a href="<?php echo esc_url( get_permalink() ); ?>"><?php the_title(); ?></a></li>


<?php } endwhile; ?>

Das funktioniert aber eben nur, wenn eure Rezensionen entsprechend heißen. Aber es gibt natürlich auch eine Möglichkeit für alle, bei denen das anders aussieht! Dank der Benutzerdefinierten Felder, die man in WordPress zu jedem Beitrag hinzufügen könnt, kann man den Rezensionen nämlich einfach Autoren und Titel zuordnen. Öffnet dazu einfach ein paar eurer Rezensionen und legt dort jeweils ein neues benutzerdefiniertes Feld an: Als Name gebt ihr „buchautor“ ein und als Wert den Namen des Autors im Format „Nachname, Vorname“ (natürlich jeweils ohne Anführungszeichen).

Wenn ihr das bei ein paar Rezensionen gemacht habt, könnt ihr den entsprechenden Code in euer Template einfügen:

<?php $my_query = new WP_Query( array( 'meta_key' => 'buchautor',
'orderby' => 'meta_value',
'order' => 'ASC',
'posts_per_page' => -1
) );
while ( $my_query->have_posts() ) : $my_query->the_post(); { ?>                                  


<li><a href="<?php echo esc_url( get_permalink() ); ?>"><?php the_title(); ?></a></li>

<?php } endwhile; ?>

Damit dürften dann zwar nur noch die Beiträge erscheinen, bei denen ihr jetzt ein benutzerdefiniertes Feld angelegt habt, dafür sollten die jetzt alphabetisch sortiert sein. Damit alle Beiträge angezeigt werden, werdet ihr leider bei jeder Rezension einzeln ein entsprechendes benutzerdefiniertes Feld hinzufügen müssen.

Ihr könnt die benutzerdefinierten Felder auch dafür nutzen, um statt des Beitragstitels Autor und Titel in der Liste anzuzeigen. Dafür müsst ihr jedem Beitrag noch ein zweites benutzerdefiniertes Feld hinzufügen, mit dem Namen „buchtitel“ und dem Titel als Wert, und den Code in eurem Template wie folgt ändern:

<?php $my_query = new WP_Query( array( 'meta_key' => 'buchautor',
'orderby' => 'meta_value',
'order' => 'ASC',
'posts_per_page' => -1
) );
while ( $my_query->have_posts() ) : $my_query->the_post(); { ?>                                  


<li><a href="<?php the_permalink(); ?>"><?php $key="buchautor"; echo get_post_meta($post->ID, $key, true); ?>: <?php $key="buchtitel"; echo get_post_meta($post->ID, $key, true); ?></a></li>


<?php } endwhile; ?>

Und das war es auch schon wieder! Ich hoffe, dieses Tutorial hilft dem einen oder anderen von euch weiter und wünsche viel Spaß (und Glück) beim Basteln! Nächste Woche geht es dann weiter mit der Trennung nach Buchstaben und der Integration des klickbaren Alphabets aus Part I.

How-To Rezensionsindex

3

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.