我正在尝试自定义帖子的摘录长度。我正在function.php
上使用此功能:
function get_excerpt(){
$excerpt = get_the_content();
$excerpt = preg_replace(" ([.*?])",'',$excerpt);
$excerpt = strip_shortcodes($excerpt);
$excerpt = strip_tags($excerpt);
$excerpt = substr($excerpt, 0, 25);
$excerpt = substr($excerpt, 0, strripos($excerpt, " "));
$excerpt = trim(preg_replace( '/s+/', ' ', $excerpt));
$excerpt = $excerpt.'... <a href="'.$permalink.'">[...]</a>';
return $excerpt;
}
并在此标签上使用
<article class="secundary">
<div class="mini">
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('large', array('class' => 'img-responsive')); ?></a>
</div>
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<p>por <span><?php the_author_posts_link(); ?></span> em <span><?php the_category(' '); ?></span> <?php the_tags('Tags: ', ', '); ?></p>
<p><?php echo get_the_date(); ?></p>
<p><?php get_excerpt(); ?></p>
</article>
有人可以帮助我吗?它没有用……为什么?
谢谢! :)
答案 0 :(得分:0)
您不必编写用于更改摘录长度的自定义函数。
您可以使用excerpt_length
过滤器。您可以在functions.php文件中使用以下代码。
function mytheme_custom_excerpt_length( $length ) {
return 25;
}
add_filter( 'excerpt_length', 'mytheme_custom_excerpt_length', 999 );
然后在您的帖子模板中使用默认的the_excerpt()
标签。
这将显示25个字符的摘要。有关自定义摘录的更多选项,请查看以下链接。 https://developer.wordpress.org/reference/functions/the_excerpt/
希望这会有所帮助。
答案 1 :(得分:0)
我会避免受到字符限制,因为这会带来性能上的损失。相反,要限制字数。将以下内容放入您的functions.php中:
function excerpt($limit) {
$excerpt = explode(' ', get_the_excerpt(), $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt).'...';
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`[[^]]*]`','',$excerpt);
return $excerpt;
}
无论您在模板文件中使用摘录如何,现在都可以添加要显示的单词数量(例如30个),如下所示:
echo excerpt(30)