WordPress Funktion: the_excerpt()

Tags: | |

Standardmäßig sind WordPress-Themes im Index- als auch im Archiv-Bereich so eingerichtet, das sie die Funktion the_content() zur Ausgabe der Artikel benutzen. Diese Funktion gibt innerhalb von The Loop den eigentlichen Blog-Eintrages aus. Die Funktion the_content() gibt den Blog-Eintrag in voller länge aus, solange der Autor nicht innerhalb des Artikel ein „more“-Tag gesetzt hat:

Wenn der Quicktag

<!--mehr-->

in einem Beitrag benutzt wird um die Stelle der „Abkürzung“ zu kennzeichnen wo der Beitragsauszug endet, dann zeigt der the_content Tag nur den Auszug bis zum „more“-Quicktagpunkt auf Nichteinzelseiten/Nichtpermalink-Beitragsseiten. Im Aufbau enthält der the_content Tag einen Parameter zum Formatieren des „mehr“ Inhalts und Aussehens, welcher einen Link zum „weiterlesen“ des ganzen Beitrags herstellt.

WordPress bietet aber auch eine andere Funktion, um Beiträge innerhalb des Index- und Archiv-Bereiches „verkürzt“ (also quasi geteasert) anzuzeigen:

the_excerpt()

Die Funktion the_excerpt() liefert einen nach 55 Worten mit „[…]“ gekürzten Beitrag – übrigens auch an den Feeder (Beispiel für den Einsatz: Kapitalanlagen-Infos).

Nun hat die Funktion the_excerpt() aber einen kleinen – nennen wir es mal – Design-Fehler: Unter Beachtung der Usability müsste das Tag „[…]“ natürlich mit der Singlepage des Artikel (also der Einzelseite, auf der der komplette Artikel gezeigt wird) verbunden sein: Leider Fehlanzeige, das Element ist nicht verlinkt. Dieses Problem lässt sich aber schon mit wenigen Programmier-Kenntnissen umgehen:

Der the_excerpt()-Hack: (bezieht sich auf WordPress 2.3.x)

Zuständig für die Ausgabe des […]-Tags ist die Datei formatting.php im Verzeichnis wp-includes. Etwa bei Zeile 810 finden Sie die Funktion wp_trim_excerpt($text), welche für die Kürzung des Artikels verantwortlich ist. Für den Hack gehen wir wie folgt vor:

In Zeile 820 kommentieren wir den folgenden Code aus:

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

und fügen darunter die folgende Zeile ein:

array_push($words, '<a href="'.get_permalink().'">[...]</a>');

und schon ist unser […]-Tag mit dem Artikel verlinkt.

Natürlich lässt sich an dieser Stelle auch durch Anpassung von

$excerpt_length = 55;

die Teaser-Länge beeinflussen und darüber hinaus könnte unser „[…]“-Link auf den Permalink-Beitrag mit der Funktion the_title() noch verfeinert perfektioniert werden…

4 Kommentare zu “WordPress Funktion: the_excerpt()”

  1. Uli meint:

    Ähem… das Ding heißt Teaser. Nicht Tearser. Haste am Anfang sogar richtig gemacht 😉 …

  2. Stephan Hertz meint:

    Ja ja Uli, hab´s korrigiert – nutze lieber das Wissen, um Deinen Content-Diebstahl einzudämmen 😉

  3. Silvi meint:

    Super, vielen dank für diesen Tip das hab ich gesucht. Im Prinzip hat es soweit auch geklappt, aber irgendwas hab ich falsch gemacht…
    Ich habe ja durch ersetzt, jetzt passiert aber blöderweise wenn ich auf Weiter lesen klicke das ich zwar im ganzen Beitrag lande aber der auch wieder den Button Weiter lesen hat und ich so nie das ganze angezeigt bekomme.

    Was hab ich denn da nur falsch gemacht?

    Viele Grüße
    Silvi

  4. Stephan Hertz meint:

    Ich würde vermuten, das auf der Single-Page im Theme ebenfalls the_excerpt() aufgerufen wird?

Hinterlassen Sie einen Kommentar

Text-Formatierung: Sie können diese XHTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> benutzen.

Comments links could be nofollow free.