WordPress & Webwork

WordPress-Auszug (the_excerpt) anpassen

Neben der üblichen Ausgabe eines Blog-Beitrages durch the_content(); kann man auf den Übersichtsseiten von WordPress den Inhalt auch Auszugsweise ausgeben und zwar durch das Template-Tag the_excerpt();. Leider ist dieser Template-Tag nicht so mächtig, wie der erste oder besser gesagt: ihm wurden keine Parameter auf den Weg gegeben und so kann man ihn im Frontend gar nicht anpassen.

Heute hatte ich die Bitte eines Kollegen bekommen, dass alle Beiträge als Auszüge ausgegeben werden und das anstatt der drei Punkte die richtigen Auslassungszeichen (…) erscheinen sollen. dafür begibt man sich in die Datei formatting.php im Ordner wp-includes und dort zwischen den Zeilen 844-862 findet man den Bereich, der für den Auszug zuständig ist:

function wp_trim_excerpt($text) { // Fakes an excerpt if needed
	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 = 55;
		$words = explode(' ', $text, $excerpt_length + 1);
		if (count($words) > $excerpt_length) {
			array_pop($words);
			array_push($words, '[...]');
			$text = implode(' ', $words);
		}
	}
	return $text;
}

Speziell die Zeile 853 ($excerpt_length = 55;) und die Zeile 857 (array_push($words, '[...]');) sind recht interessant. Mit der ersten Angabe kann man die Anzahl der Wörter anpassen, die ausgegeben werden, wenn zwar ein Auszug ausgegeben wird, aber keiner vom Autor verfasst wurde. Das System gibt dann hier standardmäßig die ersten 55 Wörter des reinen Textes (engl. plain text) aus.

In der zweiten Angabe kann man das Zeichen setzen welches dem Leser symbolisiert, dass es sich hier einen Auszug handelt. Richtigerweise müssten hier die Auslassungszeichen (… oder …) rein, die oft fälschlicherweise (Unwissenheit oder Gemütlichkeit) durch drei Punkte ersetzt werden.

15 Reaktion(en)

  1. Benni

    Wäre es nicht weitaus besser in der functions.php die Funktion nachzubauen? Denn ich kann mir nicht vorstellen, dass ein Hack in den Includes Vorteile mit sich bringt.

    Zudem wird die Datei dann jedesmal wieder überschrieben und die Änderung zunichte gemacht, wenn man WordPress aktualisiert.

  2. Micha

    Um die Anzahl der Worte zu verändern , kann man in Theme

    the_content_rss('', TRUE, '', 30)

    verwenden, wobei die 30 für die Anzahl der Worte steht.

  3. Florian Fiegel

    Danke für die nützlichen Hinweise. So weiß ich nun auch, wie ich WordPress vernünftig manipulieren kann um die Außlassungszeichen zu verwenden. Das nervt mich nämlich tatsächlich tierisch, dass es in fast überall falsch ist …

    Wäre vielleicht auch etwas, was man mal in die Community zurückbringen könnte. Eine generelle Korrektur sollte doch im Sinne der Entwickler sein.

  4. Niederrhein

    Hat jemand eine Idee auf die Frage von Ben (Beitrag 9). Meine PHP-Kentnisse sind nicht die besten. Würde jedoch auch gerne auf den Punkten den Link zum kompletten Artikel setzen. Also nicht nur den Link auf den Title sonder auch auf die drei Punkte. Hat vielleicht jemand eine Idee?

  5. Pingback: Wordpress Plugin Gurken Stripper - infogurke.de

  6. Pingback: the_excerpt anpassen

  7. Pingback: Alexander Ring online | RS Event und the_excerpt()

Die Kommentare in diesem Beitrag sind geschlossen.