Как правильно ограничить контент и удалить HTML?

Я использую этот код в течение длительного времени:

$temp_arr_content = explode( " ", substr( strip_tags( get_the_content() ), 0, 720 ) ); $temp_arr_content[count( $temp_arr_content ) - 1] = ""; $display_arr_content = implode( " ", $temp_arr_content ); echo $display_arr_content; if( strlen( strip_tags( get_the_content() ) ) > 0 ) echo "..."; 

Чтобы ограничить мой контент 720 символами и удалить из него html
Однако сегодня я снова использовал его в своей новой теме, но я заметил, что он также выводит HTML-коды (код HTML не работает, но отображается в содержимом).

Я также использовал этот код в своей теме:

 $excerpt = get_the_excerpt(); echo string_limit_words( $excerpt, 55 ); 

и этот код на моем Function.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 ); } 

для ограничения слов и полосы HTML, однако, когда я меняю 55 на 150, код не работает, и он по-прежнему показывает 55 слов.
может кто-то, пожалуйста, помогите мне решить эту проблему? благодаря

Во-первых, я бы не изменял длину строки / слова в контенте . Семантически, вы имеете дело с выдержкой , поэтому давайте сосредоточимся на этом.

Во-вторых, чтобы ограничить количество слов, возвращаемых для выдержки, просто отфильтруйте excerpt_length :

 <?php function wpse52673_filter_excerpt_length( $length ) { // Return (integer) value for // word-length of excerpt return 150; } add_filter( 'excerpt_length', 'wpse52673_filter_excerpt_length' ); ?> 

Дополнительное преимущество использования the_excerpt() заключается в том, что для автогенерированных выдержек не анализируется HTML . Итак, если вы не используете пользовательские выдержки, все готово .

Однако, если вы используете пользовательские отрывки, но все же хотите удалить теги HTML, просто удалите все или все из следующих фильтров, которые применяются к the_excerpt :

 add_filter( 'the_excerpt', 'wptexturize' ); add_filter( 'the_excerpt', 'convert_smilies' ); add_filter( 'the_excerpt', 'convert_chars' ); add_filter( 'the_excerpt', 'wpautop' ); add_filter( 'the_excerpt', 'shortcode_unautop'); 

Чтобы удалить его, просто вызовите, например:

 remove_filter( 'the_excerpt', 'wptexturize' );