Как установить лимит символов для the_content () и the_excerpt () в wordpress? Я только нашел решения для ограничения слов – я хочу, чтобы можно было установить точные цифры символов.
Вы можете использовать функцию обратного вызова фильтра WordPress. В директории вашей темы создайте файл с именем functions.php
и добавьте следующее в:
<?php add_filter("the_content", "plugin_myContentFilter"); function plugin_myContentFilter($content) { // Take the existing content and return a subset of it return substr($content, 0, 300); } ?>
Функция plugin_myContentFilter()
будет вызываться каждый раз, когда вы запрашиваете содержимое сообщения / страницы через the_content()
– он предоставляет вам контент в качестве ввода и будет использовать все, что вы возвращаете из функции для последующего вывода или других функций фильтра ,
Вы также можете сделать то же самое для the_exercpt()
– add_filter()
а затем функцию, которая будет использоваться в качестве обратного вызова.
Дополнительную информацию см. В документации по документу WordPress .
Или даже проще и без необходимости создавать фильтр: используйте mb_strimwidth
PHP для усечения строки до определенной ширины (длины). Просто убедитесь, что вы используете один из синтаксисов get_
. Например, с содержимым:
<?php $content = get_the_content(); echo mb_strimwidth($content, 0, 400, '...');?>
Это сократит строку на 400 символов и закроет ее ...
Просто добавьте «read more» -link в конец, указав на постоянную ссылку с помощью get_permalink()
.
<a href="<?php the_permalink() ?>">Read more </a>
Конечно, вы могли бы также построить read more
в первой строке. Затем просто замените '...'
на '<a href="' . get_permalink() . '">[Read more]</a>'
Это также балансирует теги HTML, чтобы они не оставались открытыми и не прерывали слова.
add_filter("the_content", "break_text"); function break_text($text){ $length = 500; if(strlen($text)<$length+10) return $text;//don't cut if too short $break_pos = strpos($text, ' ', $length);//find next space after desired length $visible = substr($text, 0, $break_pos); return balanceTags($visible) . " […]"; }
Для использования the_content()
(для отображения основного содержимого страницы)
$content = get_the_content(); echo substr($content, 0, 100);
Для использования the_excerpt()
(для отображения краткого содержания фрагмента страницы)
$excerpt= get_the_excerpt(); echo substr($excerpt, 0, 100);
wp_trim_words
Эта функция обрезает текст до определенного количества слов и возвращает обрезанный текст.
echo wp_trim_words( get_the_content(), 40, '...' );
просто чтобы помочь, если кто-то хочет ограничить длину почты на home page
.. тогда можно использовать код ниже, чтобы сделать это ..
нижеприведенный код является просто модификацией @bfred.it
Sir
add_filter("the_content", "break_text"); function limit_text($text){ if(is_front_page()) { $length = 250; if(strlen($text)<$length+10) return $text; //don't cut if too short $break_pos = strpos($text, ' ', $length); //find next space after desired length $visible = substr($text, 0, $break_pos); return balanceTags($visible) . "... <a href='".get_permalink()."'>read more</a>"; }else{ return $text; } }
<?php echo apply_filters( 'woocommerce_short_description', substr($post->post_excerpt, 0, 500) ) ?>
Замените <?php the_content();?>
На код ниже
<?php $char_limit = 100; //character limit $content = $post->post_content; //contents saved in a variable echo substr(strip_tags($content), 0, $char_limit); ?>
Функция php substr () refrence
Функция php strip_tags () refrence