WordPress 最简单的首页文章截断输出方式

有个插件名字叫 Limit Posts Automatically,可以统一截断首页的文章输出。我以前用过,但是后来觉得为了一个小功能引入那么大的插件,不太合算,所以自己研究了一下这方面的 PHP 函数。

最终被我找到的函数是 mb_strimwidth()。它能满足的需求有:正确截断,无乱码,每条截取内容的长度基本相等。

先简单介绍一下。mb_strimwidth() 会根据”宽度”来截取文字,全角字符宽度为2,半角字符为 1,只要我们将截断的宽度设置为偶数,那最后截断输出的内容一定不会有乱码。

在截断输出首页文章内容的问题上,我们还应该搭配 strip_tags() 来共同实现。strip_tags() 的作用是清除字符串内的 html 标签,放在这里就是清除输出的内容格式(包括清除图片)。既然目的是截取小段文字,自然也不需讲求格式。

废话打住,说”正题”:

请找到模板内 index.php 中的

<?php the_content(); ?>

将其替换为

<?php echo mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0, 120,”……”); ?>

之后首页文章内容截断输出就实现了。更改截取字数请调整例子中的 “120” 为你想要的数值,它后面的 “……” 是输出末尾的替换内容,款式参考我的首页。这六个点也算在 120 之内,占 6 个半角宽度。

如果有看我前面对 mb_strimwidth 的介绍,聪明人该知道怎么将他们用在 WordPress 模板侧边栏,毕竟在 css3 普及之前,用 PHP 的截断方式肯定是最佳的侧边栏截断选择。

P.S 完全使用我的方法,又出现错误,那么估计是你的主机没有安装 multibyte string extension ,对此我爱莫能助。

http://shawnster.org/my-blog-related/wordpress-truncating-index-posts-output.html

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注