the_excerpt() anpassen

Die Funktion the_excerpt() hat leider keine Parameter – gerade auf Übersichtsseiten wäre es von Vorteil, wenn man beispielsweise die Länge des Auszugs beeinflussen kann oder wenn man das Kürzel “[…]” abändern könnte.

Seit WordPress 2.9 gibt es hier Abhilfe, die man über die functions.php Datei eines Themes nutzen kann:

Änderung der Zeichenlänge des Auszugs:

function new_excerpt_length($length) {
	return 20;
}
add_filter('excerpt_length', 'new_excerpt_length');

Dabei steht die 20 für die Anzahl der Zeichen. Die Funktion sorgt schon automatisch dafür, dass ganze Wörter nicht getrennt werden.

Änderung des Trennzeichens “[…]”:

function new_excerpt_more($more) {
	return '[.....]';
}
add_filter('excerpt_more', 'new_excerpt_more');

Im Grunde wieder dasgleiche wie bei der Zeichenlänge: Im obigen Fall wird “[…..]” ausgegeben. Wenn man beispielsweise nur drei Punkte haben möchte, gibt man zwischen den Hochkommata einfach … an.

Wichtig: Die oben genannten Funktionen stehen erst ab WordPress Version 2.9 und neuer zur Verfügung. Der Einbau über die functions.php sorgt dafür, dass man keine weiteren Plugins benötigt, außerdem übersteht die Anpassung so auch jedes WordPress-Upgrade. Falls das Theme geändert wird, muss diese Anpassung natürlich wieder erneut in der functions.php im Theme-Ordner vorgenommen werden.

Nachtrag: Hier noch der functions.php-Code, um zusätzlich zum Trennzeichen auch noch einen mehr-Link erscheinen zu lassen:

function new_excerpt_more($more) {
 return '... <a href="' . get_permalink($post->ID) . '">mehr</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');

Statt “mehr” kann man natürlich auch ein beliebiges anderes Wort verwenden.

13 Antworten auf „the_excerpt() anpassen“

  1. Danke für die beiden Tipps zum Thema. Den ersten Punkt hatte ich bereits in meine Webseite eingebaut. Der 2. Tipp war mir neu. Ich habe diesen nun ebenfalls integriert.
    @René: Kann sein, diese Variante ist aber Theme unabhängig und muss nur in die functins.php eingebaut werden. Und wo steht dort der 2. Tipp in deiner Lösung?

  2. Gibt es denn eine gescheite Möglichkeit, die Ausgabe genau am Ende des ersten Absatzes zu trennen? Ich frage deshalb: Ich würde gern auf Einzelbeiträgen bei den Metatags den ersten Absatz als description ausgeben. Wie könnte ich das mit the_content machen und wie mit the_excerpt? Bei letzterer Funktion habe ich gemerkt, dass mir natürlich der More-Tag in der description angezeigt wird. Das will ich natürlich nicht. Nur wie kriege ich das weg? ^^

  3. Wenn du in die meta-description den gleichen Text wie im Artikel schreiben willst, könntest die meta-description auch gleich ganz weglassen – diese sollte sich vom Artikel-Text unterscheiden, wenn du sie für Suchmaschinen interessant machen willst.

    Die Länge der description sollte bei nicht mehr als 200 Zeichen liegen (mehr wird bei bspw. Google ja nicht ausgegeben), von daher kannst auch wieder mit der Beschreibung (the_excerpt) oben arbeiten.

    Immer den ersten Absatz zu nehmen, würde bedeuten, dass deine Artikel immer mit einem Absatz beginnen (in HTML also mit … umschlossen sind). Ist das so? Dann könntest du dir etwas mit der explode-Funktion von PHP basteln und die Daten (-Absätze) in ein Array schreiben und dann den ersten Key im Array als meta-description ausgeben.

  4. Hallo,
    ich habe die neueste WordPress-Version. Und das Affiliatetheme.
    Mit Eingabe von

    In die Loop.php des Themes habe ich es geschafft, das nun zum erstenmal in meinen Kategorien Auszüge (Excerpts) angezeigt werden.
    Vor allem das Wort “category” war hier entscheidend.

    Ich sehe in einer Kategorie nun also die ersten Zeilen meines Artikels als Auszug.
    Darüber der anklickbare Titel meines Artikels.

    Was mir noch nicht so gut gefällt:
    Die Schriftgröße des Textes meiner Auszüge ist ein wenig zu klein.
    Was könnte ich tun, um die Schriftgröße z.B. auf 12 Punkt zu erhöhen?
    Wenn Sie die Antwort wissen.
    Dann schreiben Sir mir bitte den vollständigen Code.
    Ausgehend vom Code in der Loop.php, den ich oben genannte habe.

    Vielen Dank!

  5. Hi Lothar,

    Code wird momentan aus Sicherheitsgründen automatisch aus den Kommentaren herausgefiltert. Ich schau mal, ob ich das schnell ändern kann. Dann kannst du nochmal deinen Code posten… Sorry dafür!

    Gruß,
    Thomas

    1. Das ist tatsächlich nicht so einfach und ehrlich gesagt, würde ich das auch gerne beibehalten, dass WordPress keinen Code in Kommentaren zulässt. 🙂

      Was man aber machen kann: Man formatiert den Code um, damit die Tags nicht als Code interpretiert werden. Das ist zwar umständlich, aber auf die Schnelle finde ich da keine bessere Lösung: http://www.youtube.com/watch?v=gy0A7Ymln-g

      Lothar, schick mir deinen Code mal per E-Mail – vielleicht kann ich dir ja so weiterhelfen… (Adresse steht im Impressum).

Schreibe einen Kommentar

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