mysudo

free speech, not free beer!

WordPress: the_excerpt anpassen

Ein Kommentar

Mit der Funktion the_excerpt lässt sich in WordPress so einiges machen. Die Länge von the_excerpt kann z.Bsp. generell angepasst werden, oder aber – wenn gewünscht – verschiedene Längen für verschiedene Ausgaben und Anzeigen eingestellt werden. Um das zu erreichen, benötigen wir Funktionen und Filter. So ist es ganz einfach, an verschiedenen Stellen im Blog verschiedene Längen des Excerpts (Auszugs) anzuzeigen.

Die Funktion the_excerpt hat gegenüber der Funktion the_content den Vorteil, dass Grafiken automatisch entfernt, d.h. nicht angezeigt werden.

Nun gibt es ja zwei Möglichkeiten oder Herangehensweisen, wie Du die Ausgabe auf der Blog-Startseite steuern kannst. Die erste Möglichkeit ist, dass Du in Deinen Beiträgen mit der More Funktion arbeitest. Du erstellst also einen Artikel und definierst selber und für jeden Eintrag individuell, wo der More-Link auftauchen soll. Anschliessend wird der Artikel in der index.php via the_content ausgegeben – aber eben nur bis zu dem von Dir festgelegten More-Link.

Die andere Variante sieht so aus: Anstatt mit dem More-Tag zu arbeiten, definierst Du verschiedene Längen von the_excerpt und gibst dann diese eigenen Definitionen auf der index.php aus. Wie Du Deine Ausgaben steuerst, ist natürlich wie immer Geschmackssache.

the_excerpt – Länge global anpassen

Mit der Funktion new_excerpt_length kann man nun die Länge von the_excerpt in der functions.php im eigenen Theme anpassen. Diese Funktion überschreibt ganz einfach die Standard Länge von the_excerpt. D.h. überall, wo mit the_excerpt gearbeitet wird, kommt die mit der Funktion new_excerpt_length definierte Länge des Auszugs zum Einsatz.

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

Wobei die Zahl 30 in diesem Beispiel die neue Länge des Excerpts angibt. Mit dieser Funktion kannst Du also die globale Länge des Auszugs aus einem Artikel steuern.

Eine eigene Länge für the_excerpt festlegen und verwenden

Nun willst Du aber vielleicht verschiedene Ausgaben mit the_excerpt erzeugen. Dies kannst Du ebenfalls mit einer Funktion und einem Filter erreichen. Dazu erstellst Du in der functions.php Deines WordPress Themes eine neue Funktion mit der von Dir gewünschten Länge. Ich nenne diese neue Funktion in diesem Beispiel einfach mal bsp_excerpt_lenth.

function sb_excerpt_length($length) {
 return 10;
}

In meinem Template rufe ich dann an der gewünschten Stelle – z.Bsp. in der footer.php – den Auszug folgendermassen auf:

add_filter('excerpt_length', 'bsp_excerpt_length');
the_excerpt();
remove_filter('excerpt_length', 'bsp_excerpt_length');

Dieser Code fügt vor dem Aufruf von the_excerpt den von mir vorher definierten Filter hinzu, ruft dann den Excerpt auf und anschliessend wird der Filter (für die weitere Verwendung der global gültigen Einstellung) wieder entfernt.

Diese Herangehensweise gibt mir also die Möglichkeit, unzählige Funktionen in der functions.php zu erstellen, um diese in der entsprechenden Template Datei dann aufzurufen.

Der Vorteil dieser Methode liegt darin, dass wir nicht die globale Länge von the_excerpt modifizieren – die gewünschte Länge unseres Auszugs wird nur genau dort verwendet, wo wir es in unserem Theme auch brauchen.

Advertisements

Autor: Thom

Abenteurer, Outdoorfreak, Webworker, Linuxer, WordPresser, SysAdmin, Tech-Geek, Fotograf, Makrofetischist, Alpinwanderer, Mountainbiker, Reisender, Seilbähnler, Skiliftler, Gärtner, Autoflicker, Naturliebhaber, Selbstversorger, Gipfelstürmer, Lebenskünstler - ich bin flexibel, situativ und variabel verfügbar!

Ein Kommentar zu “WordPress: the_excerpt anpassen

  1. Thomas, sehr schön, das du auch die Rücknahme des Filters erörtert hast. Habe Dank für den Artikel und weiterhin viel Erfolg!

    Gefällt mir

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s