WordPress CMS主题首页文章摘要、字符截取与过滤技术

2014-04-01 23:56 阅读 777 次 评论关闭

WordPress字符截取通常用于摘要、简介,但是有写代码是我们不想看到的,比如HTML、BBcode。

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

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

请找到模板内 index.php 中的:

  1. <?php the_content(); ?>

替换成下面这句代码:

  1. <?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 120,"......"); ?>

上面代码中的120为字符数,因为单个中文为2个字符,因此这个120就为60个中文字符,引号中的省略号可以不用,因为自动截断后,会在截断位置上自动加上省略号。

这是最简单的实现方法,当然其他位置,我们也能举一反三,比如在侧边栏的评论截断等,具体就不细说了,稍微研究下就可以了。

附加:

一、截取过滤html代码

1、mb_strimwidth

<?php echo mb_strimwidth(strip_tags(get_the_content), 0, 360,"...");?>代码中的360代表120个双字节文字。

2、wp_trim_words

<?php echo wp_trim_words( get_the_content(), 90, '...' );?>
代码中的90代表30个双字节文字。
参考文档:http://codex.wordpress.org/Function_Reference/wp_trim_words。

二、截取并过滤html、BBcode代码

bbcode

上图是包含了bbcode的代码截图,通常我们在编辑文章插入编辑器后出现caption之类的,现在我们将HTML、BBcode一起过滤掉。

<?php
$content = get_the_content();
$content = wp_strip_all_tags(str_replace(array('[',']'),array('<','>'),$content));
echo mb_strimwidth(strip_tags($content), 0, 111,"...");
?>

 

 

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:WordPress CMS主题首页文章摘要、字符截取与过滤技术 | 猎微网

评论已关闭!