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就是截断的相关函数。

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

评分:
当前平均分 3.37 (73%) - 8 个投票
云左主机 广告
4 条 评论
  1. MARK一下,感谢分享~~~

    3年前 回复
  2. 习惯于自动截取了

    4年前 回复
  3. 哪种情况下会输出并转换html标签啊?

    4年前 回复
发表评论