WordPress – Automatisch nur Auszüge auf der Startseite
Ich habe mich in den vergangenen Tagen ein wenig durch diverse Blogs geklickt. Der große Unterschied zu meine Blog: Auf den Startseiten habe ich nie die kompletten Beiträge gesehen sondern musste immer den jeweiligen Artikel aufrufen um den gesamten Artikel zu lesen. Der Vorteil für Autor und Leser liegt auf der Hand.
Den Leser ist eigentlich nie an allen Artikeln im Blog interessiert. Um die Artikelauswahl größer zu machen werden nur Auszüge gezeigt und somit wird Platz geschaffen für weitere Artikel, die ohne viel scrollen zu erreichen sind.
Der Autor erhält deshalb die Möglichkeit auf mehr potenzielle Leser der Artikel, sofern sie auf die Hauptseite gekommen sind. Leser die durch eine Suchmaschine auf die Seite kommen werden sowieso gleich zum jeweiligen Artikel weitergeleitet. Darüber hinaus wächst noch nie Wahrscheinlichkeit, dass der Autor ein Feedback durch einen Kommentar bekommt, da das Kommentarfeld dann am Ende des Artikels steht und nicht der nächste Artikel.
Doch wie bekomme ich nun Auszüge in meinen WordPressblog? Das ist ganz einfach. Man braucht kein Plugin dafür, es sind nur kleine Änderungen am WP Code.
Als erstes müsst ihr in der Datei index.php, die für die Ausgabe der Artikel auf der Startseite verantwortlich ist
<?php the_content(); ?>
durch
<?php the_excerpt(); ?>
ersetzt werden.
Das war es eigentlich schon. Nun gibt es Auszüge auf der Startseite. Wem es allerdings noch nicht gefällt sollte die Funktion leicht verändern. Dazu muss man die Datei functions-formatting.php im Verzeichnis wp-includes öffnen und folgenden Code suchen:
function wp_trim_excerpt($text) {
$raw_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 = apply_filters('excerpt_length', 55);
$excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
$text = implode(' ', $words);
$text = $text . $excerpt_more;
}
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
Bei mir sieht die Funktion so aus (Änderungen rot hervorgehoben):
function wp_trim_excerpt($text) {
$raw_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, '<p>');
$excerpt_length = apply_filters('excerpt_length', 100);
$excerpt_more = apply_filters('excerpt_more', ' ' . '[Read more...]');
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
$text = implode(' ', $words);
$text = $text . $excerpt_more;
}
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
Änderungen im Detail:
//$text = strip_tags($text, '<p>');
Diese Zeile habe ich raus genommen, da ich Weiterhin HTML Tags in meinen Auszügen haben will (insbesondere Bilder die sonst auch nicht angezeigt werden). Es muss aber beachtet werden, dass diese Tags auch zur Gesamtlänge der Auszugs gezählt werden, auch wenn sie nicht sichtbar sind.
Es muss nun allerdings aufgepasst werden, damit der Auszug nicht vor dem Ende eines HTML Tags aufhört, da es sonst Designprobleme im Blog gibt. (Wenn man zum Beispiel vor dem </code> Tag abschneidet und der ganze Blog innerhalb des Tags steht. Lösung: unten.)
$excerpt_length = apply_filters('excerpt_length', 100);
Deshalb muss man hier die Länge (Anzahl der Zeichen) des Auszugs erhöhen.
$excerpt_more = apply_filters('excerpt_more', ' ' . '[Read more...]');
Hier kann einfach eingestellt werden, was am Ende des Auszugs steht.
Wenn es trotzdem nicht gut aussieht, muss man den Auszug von Hand erstellen. Dazu muss man einfach den Text, den man als Auszug verwenden will, beim Schreiben des Artikels in die Auszugs Box unterhalb kopieren.

Ich hoffe dieses kleine Tutorial hilft allen ein wenig. Autoren und Lesern.


[...] man nun Auszüge auf die Startseite macht habe ich im letzten Artikel schon beschrieben. Noch einfacher für den Leser wird es aber wenn er nicht den Artikel durch [...]
Mh, ich hab keine functions-formatting.php
im wp-include Ordner finde ich eine formatting.php und eine functions.php
jedoch nich beides zusammen
Und was ist wenn man auf WordPress.com angemeldet ist? Wie macht man das dann? Man kann ja nichts bei dem Template ändern?
Danke
Dann musst du es entweder nehmen wie es kommt, oder selbst auf irgend nem server wordpress installieren und deinen Blog umziehen.
Danke, bin jetzt bald auf meinem eigenen Server!
Hi Passsy,
ich würde nicht in den core-files von WP ändern, mit dem nächsten Update ist sonst alles futsch.
Besser die aktuelle Funktions-Code aus der formatting.php kopieren und in die functions.php des Themes einfügen.
Dort noch ein wenig ändern gemäß dieser Info hier
http://aaronrussell.co.uk/legacy/improving-wordpress-the_excerpt/
und Du bist Update-sicher…
Gruße, Jörg
Hallo Jörg,
Wichtig war hier vorallem die einbindung der function in das Template. Die custom fuction im core-file stelbst nutze ich gar nicht mehr. Das Problem war, dass Tags nicht automatisch geschlossen wurden, sondern das HTML einfach mittendrin abgeschnitten wurde.
In Zukunft würde ich es natürlich anders machen, da die function inzwischen durch das Updaten wirklich verschwunden ist. Danke für die Info
Hello, thanks for this useful post, it was werry usefull.
Vielen Dank für den Tip. Nach stundenlanger Suche führte mich google schliesslich auf deine Seite.
Nun habe ich die Auszüge so, wie ich sie will. ;o)