excerpt – Funktionsweise, Einsatzmöglichkeiten & individuelle Anpassungen

Excerpt – Exzerpt, Auszug bzw. Textauszug
Diese Funktion soll im folgenden Beitrag näher erläutert werden.

Hierbei sollen die nachfolgend genannten Themen kurz beleuchtet werden.

  1. Excerpt – Was bin ich?
  2. Wo wird die Funktion eingebunden?
  3. the_excerpt & get_the_excerpt – Was ist der Unterschied?
  4. Wie kann man die Länge des Exzerpts bestimmen bzw. anpassen?
  5. Kann man die Länge – abhängig vom Ausgabetyp des Inhaltes – anpassen?
  6. Wo sollte man diese Funktion nicht verwenden?
  7. Welche Erweiterungsmöglichkeiten gibt es?

1. Excerpt – Was bin ich?

Wie der Name es bereits vermuten lässt, handelt es sich hierbei um einen Auszug bzw. Textauszug.
Dieser bezieht sich auf Posts (Beiträge & Seiten) und wird meist automatisch generiert, sofern man diese Funktion nutzt bzw. in seinem Theme eingebunden hat.
Der automatisch generierte Auszug besteht aus 55 Wörtern und wird um den String ‚ […]‘ erweitert, sofern der Inhalt des Posts die Wortanzahl von 55 überschreitet.
Bei Beiträgen hat man zusätzlich die Möglichkeit einen eigenen Auszug (vgl. Abb. 1) zu verfassen, welcher dann an Stelle des automatisierten Auszugs ausgegeben wird.
Die Ausgabe erfolgt hierbei vollständig bzw. ungekürzt.
Sofern die entsprechende Eingabemaske (vgl. Abb. 1) standardmäßig nicht angezeigt wird, kann man diese unter Beitrag bearbeiten » Optionen (vgl. Abb. 2) hinzufügen.

Abb. 1
wordpress-beitrag-eingabemaske-auszug

Abb. 2
wordpress-posts-optionen-einstellungen

2. Wo wird die Funktion eingebunden?

Die Einbindung des Template-Tags muss innerhalb des Loops erfolgen.

3. the_excerpt & get_the_excerpt – Was ist der Unterschied?

Die folgenden Beispiele sollen den Unterschied verdeutlichen.

// Beispiel #1 - the_excerpt
// Anwendung
<?php the_excerpt(); ?>
// Ausgabe
<p>Exzerpt</p>
// Beispiel #2 - get_the_excerpt
// Anwendung
<?php echo get_the_excerpt(); ?>
// Ausgabe
Exzerpt

Die Funktion the_excerpt() ist sozusagen die formatierte Version von get_the_excerpt().
Kurz gefasst:

<?php the_excerpt(); ?> = <?php echo '<p>'.get_the_excerpt().'</p>'; ?>

4. Wie kann man die Länge des Exzerpts bestimmen bzw. anpassen?

Mit Hilfe der folgenden Funktion kann die Länge des Textauszuges individuell angepasst werden.
Dieser Code wird in die functions.php des Themes eingebunden.

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

Diese Funktion hat jedoch nur Einfluss auf den automatisch erstellten Exzerpt.
Sofern man bei einem Beitrag die Eingabemaske Auszug nutzt, wird der Textauszug in voller Länge ausgegeben.

5. Kann man die Länge – abhängig vom Ausgabetyp des Inhaltes – anpassen?

Ja. WordPress liefert dazu hilfreiche Funktionen, die zur Identifizierung des aktuellen Ausgabetyps helfen.
Das erste Beispiel bewirkt, dass der Exzerpt der Suchergebnisse max. 40 Wörter beinhaltet. Bei allen anderen sind es max. 20 Wörter.

// Beispiel #1
function themename_excerpt_length($length) {
if(is_search()){
return 40;
}
else{
return 20;
}
}
add_filter( 'excerpt_length', 'themename_excerpt_length', 50 );

Das nächste Beispiel ist noch etwas umfangreicher. Hier werden folgende Ausgabetypen berücksichtigt:

is_front_page() ... Startseite bzw. Frontpage
is_category() ... Kategorie
is_tag() ... Schlagwort-Archiv
is_search() ... Suchseite
// Beispiel #2
function themename_excerpt_length($length) {
if(is_front_page()):
return 35;
elseif(is_category()):
return 45;
elseif(is_tag()):
return 30;
elseif(is_search()):
return 40;
else:
return 20;
endif;
}
add_filter( 'excerpt_length', 'themename_excerpt_length', 50 );
// Excerpt - Frontpage
word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 word11 word12
word13 word14 word15 word16 word17 word18 word19 word20 word21 word22 word23
word24 word25 word26 word27 word28 word29 word30 word31 word32 word33 word34
word35 […]
// Excerpt - Kategorie
word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 word11 word12
word13 word14 word15 word16 word17 word18 word19 word20 word21 word22 word23
word24 word25 word26 word27 word28 word29 word30 word31 word32 word33 word34
word35 word36 word37 word38 word39 word40 word41 word42 word43 word44 word45
[…]
// Excerpt - Schlagwort-Archiv
word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 word11 word12
word13 word14 word15 word16 word17 word18 word19 word20 word21 word22 word23
word24 word25 word26 word27 word28 word29 word30 […]
// Excerpt - Suchergebnisseite
word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 word11 word12
word13 word14 word15 word16 word17 word18 word19 word20 word21 word22 word23
word24 word25 word26 word27 word28 word29 word30 word31 word32 word33 word34
word35 word36 word37 word38 word39 word40 […]
// Excerpt für alle anderen Ausgabetypen
word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 word11 word12
word13 word14 word15 word16 word17 word18 word19 word20 […]

6. Wo sollte man diese Funktion nicht verwenden?

Da es sich bei dieser Funktion nur um einen Auszug handelt, sollte diese logischerweise nicht für die Ausgabe eines einzelnen Posts verwendet werden.
Für die Darstellung von Beiträgen bzw. Seiten in der Einzelansicht wird die Funktion the_content() eingesetzt.

7. Welche Erweiterungsmöglichkeiten gibt es?

Sofern der Inhalt des Posts die Anzahl von 55 Wörtern überschreitet, wird der automatisch erstellte Exzerpt um den String ‚ [&hellip;]‘ erweitert.
Wenn man diesen „Trim-String“ anpassen möchte, kann man folgende Funktion in die functions.php des eigenen Themes einbinden.

// Funktion #1
function themename_excerpt_more($more) {
return ' ...';
}
add_filter('excerpt_more', 'themename_excerpt_more');

Da die Excerpt-Funktion standardmäßig keinen „Read-More-Link“ beinhaltet, könnte man diesen mit Hilfe der folgenden Funktion integrieren.

// Funktion #2
function themename_excerpt_more($more) {
   return '<a href="'.get_permalink(get_the_ID()).'">'.__(' ... mehr &#187;').'</a>';
}
add_filter('excerpt_more', 'themename_excerpt_more');

Damit es keinen Konflikt gibt, muss man sich für eine der beiden oben aufgeführten Funktionen entscheiden.
Des Weiteren hat diese Anpassung keinen Einfluss auf den manuell erstellten Auszug (vgl. Punkt 1).

Schreibe einen Kommentar

* Pflichtfelder