我正在尝试自定义帖子的摘录长度。我在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>
有人可以帮助我吗?它没有用……为什么?
谢谢! 🙂
#1
你不必编写用于更改摘录长度的自定义函数。
你可以使用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/
希望这可以帮助。
#2
我会避免受到字符限制, 因为这会带来性能上的损失。相反, 要限制字数。将以下内容放入你的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)
评论前必须登录!
注册