WordPress: Die Wortlänge von the_excerpt variieren

Ziemlich lange habe ich nach einer Möglichkeit gesucht, auf die Funktion the_excerpt mehr Einfluss nehmen zu können. Besonders wenn es darum ging, die Artikel-Teaser auf eine bestimmte Länge zu begrenzen, bin ich oftmals verzweifelt und habe dann letztenendes darauf verzichtet. Mittlerweile habe ich eine sehr praktische Möglichkeite gefunden, um an der Wortanzahl etwas zu ändern.

Diese Variante ist recht lang, aber sie hat mir bisher immer gute Dienste erwiesen. Der erste Teil des Codes wird in die functions.php geschrieben. Die Bezeichnung wpe_excerptlenght_teaser wird später wieder im Template verwendet. Anstelle von „teaser“ kann auch ein beliebiges anderes Wort verwendet werden, z.B. „startteaser“. Benötigt man unterschiedliche Längen von the_excerpt kann man die erste Funktion vervielfältigen und jeweils andere Bezeichnungen wählen.

/*Excerpt Länge*/
function wpe_excerptlenght_teaser($lenght) {
     return 30;
}
function wpe_excerpt($lenght_callback='', $more_callback='') {
     global $post;
     if(function_exists($lenght_callback)){
           add_filter('excerpt_length', $lenght_callback);
     }
     $output = get_the_excerpt();
     $output = apply_filters('wptexturize', $output);
     $output = apply_filters('convert_chars', $output);
     $output = '

'.$output.'

';
     echo $output;
}

Der zweite Teil wird dann wieder ganz normal ins Template geschrieben:

<?php $my_query = new WP_Query('posts_per_page=4');
while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID; ?>
     <h2><a href="<?php the_permalink() ?>" rel="bookmark" ?>" > <?php the_title(); ?> </a></h2>
     <?php wpe_excerpt('wpe_excerptlenght_teaser'); ?>
<?php endwhile; ?>

Published by

Schreibe einen Kommentar

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