Auszug in Zeichen

Ich habe Code in functions.php:

function string_limit_words($string, $word_limit) { $words = explode(' ', $string, ($word_limit + 1)); if(count($words) > $word_limit) array_pop($words); return implode(' ', $words); } 

aber ich muss den Auszug in der Anzahl der Charaktere beschränken, könntest du mir dabei helfen?

Solutions Collecting From Web of "Auszug in Zeichen"

Ich habe diesen Code in einem meiner letzten Projekte verwendet:

 function ng_get_excerpt($count){ $permalink = get_permalink($post->ID); $excerpt = get_the_content(); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $count); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = rtrim($excerpt,",.;:- _!$&#"); $excerpt = $excerpt.' (...)'; return $excerpt; } 

Ich habe das von hier:

http://wordpress.org/support/topic/limit-excerpt-length-by-characters

https://stackoverflow.com/questions/10923955/make-function-that-limits-text-not-show-last-punctuation-mark

es hat den Vorteil, dass es am Ende keine Punktierung zulässt und mit dem letzten vollständigen Wort endet

Benutze die function utf8_truncate() aus dieser Antwort und kämpfe dich durch wp_trim_excerpt() .

Beispielcode, nicht getestet:

 add_filter( 'excerpt_more', 'wpse_69436_excerpt_more' ); function wpse_69436_excerpt_more( $more ) { add_filter( 'wp_trim_excerpt', 'wpse_69436_trim_excerpt' ); // we remove the more text here return ''; } function wpse_69436_trim_excerpt( $excerpt ) { return utf8_truncate( $excerpt, 300 ); } 

WordPress hat einen Filter für den, der bequem excerpt_length genannt wird und eine Anzahl von Zeichen akzeptiert:

 function custom_excerpt_length( $length ) { return 50; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 ); 

ändere 50 zu dem Limit, das du willst.

Update per @toscho Kommentar:

Das ist die obige Lösung ist auch für Wörter und nicht für Zeichen, also hier ist eine schnelle:

 add_filter('the_excerpt','excerpt_char_limit'); function excerpt_char_limit($e){ return substr($e,0,50); } 

Für einen besseren Weg können Sie den get_the_excerpt Filter verwenden

 function get_excerpt($excerpt="",$limit=140){ $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $limit); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'...'; return $excerpt; } add_filter('get_the_excerpt',"get_excerpt"); 

Ändern Sie das $limit=140 in die Anzahl der gewünschten Zeichen

auch wenn du anders willst

 add_filter('get_the_excerpt',function ($excerpt="",$limit=140){ $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $limit); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'...'; return $excerpt; }); 

Dies vermeidet Konflikte wie den bestehenden Namen der function get_excerpt