How-To Rezensionsindex Part IV:
Automatisierter Index – Nach Buchstaben getrennt

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!

Und auf ein Neues! Heute, im letzten Teil, der sich mit dem Rezensionsindex selbst beschäftigt, geht es darum, die Ergebnisse von Part III mit dem zu verknüpfen, was in Part I vorgestellt wurde: Der Alphabet-Übersicht. Dafür müsst ihr euren Code, mit dem die Rezensionen abgerufen werden, nach Buchstaben trennen und dann entweder wie in meinem Rezensionsindex auf jeweils eine Seite für jeden Buchstaben aufteilen oder wie in Elenas Rezensionsindex eine entsprechende Liste, in der die Rezensionen unter dem jeweiligen Buchstaben angezeigt werden.

Los geht es mit der einseitigen Variante, bei der alle Rezensionen auf einer Liste zu finden sind. Dafür müsst ihr wieder eure Templatedatei öffnen und den Code finden, der innerhalb der „entry-content“-div-Tags steht:

<div class="entry-content">
 
<?php the_content(); endwhile; ?>
 
<?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; ?>  
 
</div>

<!-- .entry-content -->

Und jetzt könnt ihr als erstes das klickbare Alphabet über der Liste einfügen und dann die dazu gehörigen Anker. Eine genauere Anleitung dazu findet ihr in Part I dieser Reihe. Der Code gehört hinter „the_content“ und eure wp_Query. Wenn ihr da noch weiteren Code zwischen habt, müsst ihr eventuell etwas mit der Platzierung herumexperimentieren, bis der Code auf der Seite da erscheint, wo ihr ihn haben wollt:

<div class="entry-content">
 
<?php the_content(); endwhile; ?>
 
<a href="#a">A</a> • <a href="#b">B</a> … <a href="#z">Z</a>

<h4 id="a">A</h4>

<h4 id="b">B</h4>

…

<h4 id="z">Z</h4>

<?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; ?>  
 
</div>

<!-- .entry-content -->

Jetzt fehlt nur noch der Code, damit eure Query immer den passenden Buchstaben ausspuckt:

<ul><?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(); 
$autor = get_post_meta($post->ID, buchautor, true);
$this_letter = strtoupper(substr($autor,0,1));
if ($this_letter == A) { ?>                                  

<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></ul>
</li>

<?php } endwhile; ?>

Wenn ihr euch den Code anschaut, werdet ihr feststellen, dass er nur für den Buchstaben „A“ gilt. Zum Glück müsst ihr nicht für jeden Buchstaben den kompletten Code kopieren (auch wenn das hier vorher so stand, aber das kommt davon, wenn man solche Beiträge nicht rechtzeitig fertigstellt und kurz vor knapp noch dran rumbastelt, sorry!) aber ich fürchte, ein bisschen copy&paste steht euch jetzt trotzdem bevor – und das „A“ dann natürlich jeweils zum passenden Buchstaben ändern:

<div class="entry-content">
 
<?php the_content(); endwhile; ?>
 
<a href="#a">A</a> • <a href="#b">B</a> • <a href="#c">C</a> … <a href="#z">Z</a>

<h4 id="a">A</h4>

<ul><?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(); 
$autor = get_post_meta($post->ID, buchautor, true);
$this_letter = strtoupper(substr($autor,0,1));
if ($this_letter == A) { ?>

<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 } ?></ul>

<h4 id="b">B</h4>

<ul><?php if ($this_letter == B) { ?>

<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 } ?></ul>

<h4 id="c">C</h4>

<ul><?php if ($this_letter == C) { ?>

<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 } ?></ul>

<h4 id="d">D</h4>

<ul><?php if ($this_letter == D) { ?>

<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 } ?></ul>

…

<h4 id="z">Z</h4>

<ul><?php if ($this_letter == Z) { ?>

<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; ?>
 
</div>

<!-- .entry-content -->

Und damit habt ihr euren Rezensionsindex, unterteilt nach Buchstaben, mit klickbarem Alphabet oben drüber! Glückwunsch 😀

Bleibt noch die Variante, bei der ihr für jeden Buchstaben eine eigene Seite habt. Dafür braucht ihr ein neues Seitentemplate und 26 Seiten von A-Z – der Titel darf dabei auch nur der jeweilige Buchstabe sein, ihr könnt die Seiten aber zum Beispiel einer allgemeinen „Rezensionsindex“-Seite unterordnen. Für diese Buchstabenseiten erstellt ihr dann ein Template, das ungefähr so aussieht:

<?php /* Template Name: Rezensionsindex - Einzelne Buchstaben */ ?>
  
<?php get_header(); ?>

<div id="primary" class="content-area">
  
<main id="main" class="site-main">
  
<?php while ( have_posts() ) : the_post(); ?>

<article id="post-<?php the_ID(); ?"> <?php post_class(); ?>>

<div class="entry-total">

<header class="entry-header">
<?php the_title( '
<h1 class="entry-title">', '</h1>

' ); ?>
</header>

<!-- .entry-header -->
endwhile; ?>

<div class="entry-content">
 
<a href="deine URL für die Rezensionsindex-Übersicht">Übersicht</a> | <a href="deine URL/a">A</a> | <a href="deine URL/b">B</a> | … | <a href="deine URL/z">Z</a>
  
<?php $my_query = new WP_Query( array( 'category_name' => 'rezensionen',
'posts_per_page' => -1
) );
while ( $my_query->have_posts() ) : $my_query->the_post(); 
$autor = get_the_title();
$this_letter = strtoupper(substr($autor,0,1));
if ($this_letter == $buchautor) { ?>                                  

<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; ?>
  
</div>

<!-- .entry-content -->
  
</div>

</article>

<!-- #post-<?php the_ID(); ?> -->
  
</main><!-- #main -->
  
</div>

<!-- #primary -->
  
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Wie ihr seht, braucht ihr hier nicht jedes Mal den Buchstaben ändern. Ihr müsst dieses Template nur einmal erstellen und es dann eben für jede eure 26 Buchstabenseiten anwenden, anhand des Seitentitels erkennt das Template dann, zu welchem Buchstaben es die passenden Rezensionen anzeigen soll. Denkt nur daran, die Links in der Übersicht auf jeden Fall anzupassen!

Und das war’s! Ich hoffe, ihr kommt mit diesem Tutorial gut zu recht und wünsche euch viel Spaß beim Basteln 🙂 Bei Fragen, Feedback und Problemen, könnt ihr euch gerne jederzeit hier in den Kommentaren oder über Twitter bei mir melden!

How-To Rezensionsindex

5

Zu diesem Post gibt es noch keinen Kommentar - lass doch den ersten da!

  1. Hey 🙂

    Das Litnetzwerk erinnert mich da an etwas, was ich schon die ganze Zeit mal fragen wollte: Wird es eigentlich auch mal einen automatischen Rezi-Index nach Genre geben? Das wäre schon wirklich richtig mega-, megageil ;).

    Liebe Grüße
    Ascari

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Deine E-Mail-Adresse wird nicht veröffentlicht. Mit dem Absenden des Kommentars stimmst du der Speicherung deiner Daten auf rikerandom.de zu. Mehr Informationen finden sich in der Datenschutzerklärung. Erforderliche Felder sind mit * markiert.