我在自己的主题模板中使用“The Loop”来获取WordPress的最后三个帖子。
<?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个单词的纯文本作为预览显示,而不是完整的摘录或整个帖子内容正文。我该怎么做呢?
答案 0 :(得分:16)
substr()
。为什么? 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 >'); ?>
答案 1 :(得分:5)
如果没有可用的摘录,您可以尝试使用此类内容来获取帖子的前20个单词。
$content = get_the_content();
echo substr($content, 0, 20);
答案 2 :(得分:2)
试试这个:
发布包含图片:
$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);
答案 3 :(得分:1)
将此代码放在functions.php
中function new_excerpt_length($length) {
return 20;}
add_filter('excerpt_length', 'new_excerpt_length');
只需从模板页面或index.php文件中调用此函数
the_excerpt();