WordPress – the_excerpt: Ausgabe im Template anpassen

Der Template-Tag the_excerpt() veranlaßt WordPress den optionalen Auszug, also die Zusammenfassung eines Artikels, an die Stelle dieses Tags zu schreiben. Sie können diesen Tag innerhalb von Theme-Vorlagen verwenden. Leider läßt sich die Ausgabe dieses Template-Tags nicht weiter anpassen, da es keine optionalen Parameter zum einstellen gibt. Hier nun zwei Möglichkeiten the_excerpt doch selbst zu steuern.

Die erste Methode:

Man nimmt die Funktion, die für die Formatierung der Ausgabe zuständig ist, und überschreibt sie in der Datei functions.php des Templates.

Die Original Funktion steht in der Datei: wp-includes/formatting.php. Um die nun zu überschreiben ohne die Core-Dateien zu verändern tragen Sie in die functions.php ihres Themes – falls nicht vorhanden, einfach anlegen – folgende Zeilen ein.

remove_filter(‚get_the_excerpt‘, ‚wp_trim_excerpt‘);
add_filter(‚get_the_excerpt‘, ‚custom_trim_excerpt‘);

function custom_trim_excerpt($text) {
   if ( “ == $text ) {
      $text = get_the_content(“);
      $text = strip_shortcodes( $text );
      $text = apply_filters(‚the_content‘, $text);
      $text = str_replace(‚]]>‘, ‚]]>‘, $text);
      $text = strip_tags($text);
      $excerpt_length = 90;
      # $excerpt_length = apply_filters(‚excerpt_length‘, 55);
      $words = explode(‚ ‚, $text, $excerpt_length + 1);
         if (count($words) > $excerpt_length) {
            array_pop($words);
            array_push($words, ‚…‘);
            # array_push($words, ‚[…]‘);
            $text = implode(‚ ‚, $words);
         }
   }
   return $text;
}

Die Änderungen sind einmal $excerpt_length = 90; und array_push($words, ‚…‘); beides denke ich ist selbst erklärend. Info: Diese Änderungen beziehen sich auf die Auszüge die automatisch generiert werden.

Die angepasste Funktion: custom_trim_excerpt
Die angepasste Funktion: custom_trim_excerpt

Die zweite Methode:

Wir fangen die direkte Ausgabe von the_excerpt ab und leiten diese zur Weiterverarbeitung an eine neue Funktion zur Textbearbeitung weiter. Dazu müssen wir an die Stelle von <? the_excerpt(); ?> folgende Zeilen in das Template schreiben.

<?php
ob_start();                # Ausgabepuffer starten
the_excerpt();             # Ausgabe
$myex = ob_get_contents(); # Gib die Ausgabe zurück an $myex
ob_end_clean();            # Beende und leere den Puffer

/* Funktion zur kontrollierbaren Textverkürzung > in functions.php des Themes
Quelle: http://us2.php.net/manual/de/function.str-word-count.php#85563
function($text, maxZeichen, maxWörter); */

echo limit_text($myex, 120, 14);
?>

the_excerpt() abfangen mit ob_start()
the_excerpt() abfangen mit ob_start()

Und in die functions.php des Themes noch die Zeilen für die neue Funktion.

// Optionale Funktion zur kontrollierbaren Textverkürzung
// Quelle: http://us2.php.net/manual/de/function.str-word-count.php#85563

function limit_text($text, $limitstr, $limitwrd) {
   if (strlen($text) > $limitstr) {
      $words = str_word_count($text, 2);
      if ($words > $limitwrd) {
         $pos = array_keys($words);
         $text = substr($text, 0, $pos[$limitwrd]) . ‚…‘;
      }
   }
   return $text;
}

Neue Funktion zur Textkürzung: limit_text
Neue Funktion zur Textkürzung: limit_text

Die Funktion limit_text kürzt den an sie übergebenen Text auf die maximale Zeichenanzahl bei Berücksichtigung der maximalen Wortanzahl. Im Fall oben – limit_text($myex, 120, 14) – also auf 120 Zeichen und 14 Wörtern.

Der Vorteil dieser Methode ist, das man in seinem Template unterschiedlich lange Auszüge verwenden kann, wie zum Beispiel auf der Homepage dieses Blogs. Ebenso ist die Funktion auch für andere Textpassagen zu gebrauchen.

Codex: http://codex.wordpress.org/Template_Tags/the_excerpt

3 Gedanken zu „WordPress – the_excerpt: Ausgabe im Template anpassen

  1. Pingback: WordPress-Template-Tag the_excerpt(); anpassen und auf Beiträge verlinken « Wer ist eigentlich Paul?

Schreibe einen Kommentar

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

10 − 3 =