WordPress 文章截断方式:有more标签的优先more标签,否则截断一定字数

最近在完善本站主题Devework,主要是前后台的联系工作,其中遇到一个问题,那就是首页文章的截断方式。就Jeff的使用习惯的话,是直接在后台编辑器写文章的时候手动添加more (更多)标签,但对于许多博主来说,可能没有这个习惯,他们更希望是自动截断一定字数。于是,Jeff 就琢磨出了下面的代码,功能是:有more 标签的优先more 标签,否则截断一定字数。

将下面的代码替换原来相关文件(如post.php,index.php)的类似 the_content('');的代码:

 <?php if(preg_match('/<!--more.*?-->/',$post->post_content))
 the_content('');
 else{
 echo'<p>';
 echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0,240,"...");
 echo'</p>';}?>

有一定基础的都知道代码是什么含义,首先通过正则表达式匹配more标签,没有的话就截断一定字数(代码中是240字节,换成中文就是120字,一定要整数),mb_strimwidth就是截断的相关函数。

相关代码参考了网络上的一些资料,但原作者已不知。

展开评论