WordPress-Funktion the_excerpt()

WordPress bietet dem Blogger die Möglichkeit an entsprechenden Stellen einen verkürzten Auszug eines Artikels auszugeben. Die geschieht mit der Template-Funktion the_excerpt, welche leider keine Parameter kennt und sich somit nicht ohne weiteres anpassen läßt. Da ich in meinem neuen Theme verstärkt von der excerpt-Funktion Gebrauch mache, störte mich die standardmäßige Verwendung der Zeichenkette […] als Kennzeichnung für das Ende des Artikelauszugs.

Wie immer gibt es natürlich als Lösung ein Plugin, in diesem Fall nennt es sich »The Excerpt Reloaded« und wurde von guff entwickelt. Das Plugin ist okay, jedoch stellte ich mir wieder mal die Frage, ob ich für eine kleine Anpassung ein ganzes Plugin installieren muß. Man kann eine ganze Menge dazu beitragen, daß WordPress nicht unnötig ausgebremst wird und ein guter Ansatz ist immer, nicht 35 Plugins einzusetzen. Also suchte ich die Funktion die für die Ausgabe des Excerpts zuständig ist und wurde in der Datei functions-formatting.php im Verzeichnis wp-includes fündig. In Zeile 711 beginnt die Funktion wp_trim_excerpt():

function wp_trim_excerpt($text) {
global $post;
if ( '' == $text ) {
$text = $post->post_content;
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$text = strip_tags($text);
$excerpt_length = 55;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, '[...]');
$text = implode(' ', $words);
}
}
return $text;
}

Der Rest ist simpel. Wir tauschen einfach in der Zeile:

array_push($words, '[...]');

die Zeichenkette […] gegen den von uns gewünschten Text aus. Ich wollte einfach nur drei Punkte (ohne eckige Klammern) an diese Stelle setzen. Um es ganz smart zu machen, verwendete ich dafür die HTML-Entity …. Wem die Länge des Excerpts nicht behagt, der kann auch gleich noch die Zeile:

$excerpt_length = 55;

dementsprechend anpassen. Es ist mir unverständlich, warum die WordPress-Entwickler nicht einfach die Funktion the_excerpt(länge, zeichenkette) definiert haben. Trotzdem zeigt sich wieder, daß nicht auf jeden kleinen Spatzen mit großen Plugin-Kanonen geschossen werden muß.

Die Excerpt-Funktion stellt übrigens standardmäßig nur den reinen Posting-Text dar. Bilder, Links usw. werden herausgefiltert. Wer sich hier mehr Flexibilität wünscht, kann zu oben genanntem Plugin greifen, die optimalste Variante bietet WordPress allerdings schon von Hause aus: den optionalen Auszug:

Optionaler Auszug
Die Möglichkeit des selbstdefinierten Excerpts im Admin-Panel.

Hier kann man den Text beliebig anpassen und auch Bilder, Links u.ä. verwenden.

Artikel: WordPress-Funktion the_excerpt()
Datum: Friday, 05. May 2006, 23:27 Uhr
Kategorien: WordPress
Feed zum Beitrag: RSS 2.0 · Trackback: Trackback-URL
Diesen Artikel kommentieren.

20 Kommentare

Artikel kommentieren




Formatierung per XHTML oder Textile möglich.