Überschriften aus den Excerpts entfernen

Inhaltsverzeichnis

Excerpts filtern

Wenn ihr einen Artikel in Wordpress verfasst und keinen besonderen Auszug bzw. Excerpt angebt, dann nutzt Wordpress den Anfang des Textes automatisch. Dieser wird dann im Archiv und auf der Homepage angezeigt, je nachdem wie ihr eure Website konfiguriert habt und wo entsprechende Schnipsel ausgegeben werden. Das Problem dabei: In diesen automatisch generieren Excerpts befindet sich inzwischen kein Weiterlesen-Link mehr und auch h1, h2, h3, h4, h5 etc. Tags werden nicht korrekt entfernt. Überschriften stehen also direkt am Anfang des Textes und das verwirrt den spontanen Besucher, weil die Excerpts so meist erst einmal verwirrend und unsinnig wirken. Mit einem Snippet lässt sich dies beheben und selbiges hat gleich noch weitere nützliche Optionen. So lassen sich nicht nur Überschriften aus den Excerpts herausfiltern, sondern auch der ersehnte Weiterlesen-Link wird hinzugefügt.

Folgendes in die Functions.php eures Themes kopieren:

function wp_strip_header_tags( $excerpt='' ) {

        $raw_excerpt = $excerpt;
        if ( '' == $excerpt ) {
                $excerpt = get_the_content('');
                $excerpt = strip_shortcodes( $excerpt );
                $excerpt = apply_filters('the_content', $excerpt);
                $excerpt = str_replace(']]>', ']]>', $excerpt);
}

$regex = '#(<h([1-6])[^>]*>)\s?(.*)?\s?(<\/h\2>)#';
                $excerpt = preg_replace($regex,'', $excerpt);

                $excerpt_length = apply_filters('excerpt_length', 55);
                $excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
                $excerpt = wp_trim_words( $excerpt, $excerpt_length, $excerpt_more );

return apply_filters('wp_trim_excerpt', preg_replace($regex,'', $excerpt), $raw_excerpt);
}
add_filter( 'get_the_excerpt', 'wp_strip_header_tags', 9);

Dieser Absatz bestimmt die Länge der Excerpts. Je nach Wunsch, könnt ihr die Zahl nach oben oder unten korrigieren:

$excerpt_length = apply_filters('excerpt_length', 100);

Wollt ihr statt der Punkte lieber einen Weiterlesen-Link, dann ändert die Zeile folgendermaßen:

$excerpt_more = apply_filters('excerpt_more', '' . '... <a href="'. get_permalink($post->ID) . '">' . 'Weiterlesen &raquo;' . '</a>');

Excerpts anpassen

Das Snippet oben ist extrem nützlich und einfach zu handhaben, denn so werden die automatischen Excerpts endlich lesbar. Überschriften, die sich in einem h1-h6 Tag befinden, werden entfernt und stehen somit auch nicht mehr am Anfang der Wordpress Excerpts. Außerdem lässt sich mit dem kleinen Snippet auch gleich die Länge der Auszüge festlegen, auch ein Weiterlesen-Link in den Excerpts scheint mehr als angebracht und praktisch. Ein nützliches kleines Snippet also, um den allgemeinen Komfort für die Leser zu erhöhen. Kleine Randnotiz am Ende noch: Normalerweise solltet ihr mit “preg_replace” Snippets sparsam umgehen, weil diese meist auf die Performance drücken, doch hier ist es gut genutzt und das Snippet ist für manch einen Blog sicherlich sehr wichtig.

Christian Pust
WordPress & Onlinemarketing Experte mit über 15 Jahren Erfahrung. Entwickler & CEO von Trackboxx – der Google Analytics Alternative.

Schreibe einen Kommentar

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

Das könnte dich auch interessieren

Du benötigst Unterstützung bei deinem WordPress Projekt?

Dein Ansprechpartner
Christian