我们知道通过 WordPress 函数 get_the_excerpt()
可以获取日志的摘要,如果没有摘要,它会自动获取内容,并且截取。但是由于无法正确统计中文字符数,这个函数总是无法很好的截取中文内容,显得摘要长短不一,所以我重新撰写了下面这个函数来解决这个问题。
function get_post_excerpt($post, $excerpt_length=240){
if(!$post) $post = get_post();
$post_excerpt = $post->post_excerpt;
if($post_excerpt == ''){
$post_content = $post->post_content;
$post_content = do_shortcode($post_content);
$post_content = wp_strip_all_tags( $post_content );
$post_excerpt = mb_strimwidth($post_content,0,$excerpt_length,'…','utf-8');
}
$post_excerpt = wp_strip_all_tags( $post_excerpt );
$post_excerpt = trim( preg_replace( "/[nrt ] /", ' ', $post_excerpt ), ' ' );
return $post_excerpt;
}
将上面的代码复制到当前主题的 functions.php
,然后使用下面的方式调用:
<?php echo get_post_excerpt(); ?>
该功能已经整合到 WPJAM Basic 插件中,并已免费提供下载,简单勾选或者设置下即可开启!