Я использую The Loop на моей собственной веб-странице, чтобы получить последние три сообщения из WP.
<?php $args = array( 'numberposts' => 3 ); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> <!-- DATE --> <div class="date"> <?php the_time('m F Y');?> </div> <!-- TITLE --> <div class="title"> <?php the_title(); ?> </div> <!-- SNIPPET --> <div class="content"> <?php the_excerpt(); ?> </div> <?php endforeach; ?>
Все работает нормально – кроме the_excerpt()
. Мне нужно около 15-20 слов простого текста из сообщения, чтобы показать его как предварительный просмотр. Как мне это сделать?
Благодаря 🙂
Вы можете попробовать использовать что-то вроде этого, чтобы захватить первые 20 слов сообщения, если нет отрывки.
$content = get_the_content(); echo substr($content, 0, 20);
Если вы используете substr()
, он может обрезать конечный HTML-тег (ы) и вернуть неверный HTML.
В WordPress 3.3 появилась новая основная функция wp_trim_words()
.
wp_trim_words($text, $num_words, $more);
$text (string) (required) Text to trim Default: None $num_words (integer) (optional) Number of words Default: 55 $more (string) (optional) What to append if $text needs to be trimmed. Default: '…'
<?php echo wp_trim_words(get_the_content(), 40, '...'); ?> <?php echo wp_trim_words(get_the_excerpt(), 20, '... read more...'); ?>
попробуй это :
Сообщение содержит изображения:
$content = get_the_content(); $content = apply_filters('the_content', $content); $content = str_replace(']]>',']]>', $content); echo substr(strip_tags($content),0,100);
и без изображений:
$content = get_the_content(); echo substr($content, 0, 25);
Поместите этот код в functions.php
function new_excerpt_length($length) { return 20;} add_filter('excerpt_length', 'new_excerpt_length');
И просто вызовите эту функцию со страницы шаблона или файла index.php
the_excerpt();