Hi zusammen,
ich versuche gerade auf der Startseite meines Blogs die Beiträge etwas zu verkürzen. Hierfür bin ich von
auf
umgestiegen und habe in meiner functions.php die wp_trim_excerpt wie folgt abgeändert
PHP
function improved_wp_trim_excerpt($text) {
$raw_excerpt = $text;
if ( '' == $text ) {
$text = get_the_content('');
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$text = strip_tags($text, '<b><strong><a>');
$excerpt_length = apply_filters('excerpt_length', 55);
$excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
$words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
if ( count($words) > $excerpt_length ) {
array_pop($words);
$text = implode(' ', $words);
$text = $text . $excerpt_more;
} else {
$text = implode(' ', $words);
}
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
Alles anzeigen
Ich strippe also mit strip_tags() alle HTML Elemente aus dem String außer <b>,<strong> und <a>.
Leider kommt es hin und wieder dazu, dass die html Tags nicht vernünftig geschlossen werden.
Kennt hierfür einer eine Lösung? Suche so was ähnliches wie die "cut-html-string Klasse" (http://snipplr.com/view.php?codeview&id=16884), nur halt auf Wörterebene und vielleicht etwas "schlanker" :)
Viele Grüße und vielen dank schonmal.
Rosch