Wordpress Performance Wordpress SEO Wordpress Security Wordpress Themes Wordpress Hosting Mein Setup Das Buch

Überschriften aus den Excerpts entfernen

Überschriften aus den Excerpts entfernen

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.



Wordpress Performance eBook