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(']]>', ']]&gt;', $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(']]>', ']]&gt;', $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.

, , , , , , , , , , , , , , , , , , ,

9 Comments

Schreibe einen Kommentar

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>