YAOHAIXIAO.COM

HTML(5),CSS(3),JavaScript,DOM,Ajax,JSON,Front-end technologies & Yaohaixiao

热门标签:JavaScript Performance 前端开发 前端性能优化 原创

Rss

Home » WordPress » 利用 explode() 函数获得 WordPress 中第一段的内容

利用 explode() 函数获得 WordPress 中第一段的内容

如何获得 WordPress 中第一段的内容?我想很多用 WordPress 的朋友都会考虑这个问题。比如我们在文章列表页希望使用第一段的内容生成文章的摘要。我这里就给出我的一个解决方案:

if (!function_exists('get_the_paragraph')):
function get_the_paragraph($nth){
	$content = get_the_content();
	$content = apply_filters('the_content', $content);
    $content = str_replace(']]>', ']]>', $content);
    $paragraphs = explode('</p>',$content);
		
	return preg_replace('/(\<p\>)/is','<p class="first-paragraph">',$paragraphs[$nth]);
}
endif;

if (!function_exists('get_first_paragraph')):
function get_first_paragraph(){
	return get_the_paragraph(0);
}
endif;

我在网上也看到过一些其它的写法,不过我这个会比较快一些,也保证 $content 中一定会出现 p 标签。其实就是这里:

$content = get_the_content();
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]&gt;', $content);

使用 get_the_content() 函数获得的内容是大家在 WordPress 后台发表文章时,选择“文本”编辑方式时的原始内容。这样的原始数据里,有的朋友可能没有自己输入 p 标签而是直接回车换行的。所以我把 the_content() 函数里的方法复制了一下$content = apply_filters('the_content', $content);,这样就确保会把回车换行的内容使用 p 标签代替。

接下来,我就使用 explode() 函数 $paragraphs = explode('</p>',$content); 处理,然后再返回 explode() 函数返回值的数组的一个值。这样就获得了第一段的内容了。对 explode() 函数的说明我就直接引用 www.w3school.com.cn 的介绍了:

explode() 函数定义和用法

explode() 函数把字符串分割为数组。

语法

explode(separator,string,limit)
参数 描述
separator 必需。规定在哪里分割字符串。
string 必需。要分割的字符串。
limit 可选。规定所返回的数组元素的最大数目。

说明

本函数返回由字符串组成的数组,其中的每个元素都是由 separator 作为边界点分割出来的子字符串。

separator 参数不能是空字符串。如果 separator 为空字符串(””),explode() 将返回 FALSE。如果 separator 所包含的值在 string 中找不到,那么 explode() 将返回包含 string 中单个元素的数组。

如果设置了 limit 参数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。

如果 limit 参数是负数,则返回除了最后的 –limit 个元素外的所有元素。此特性是 PHP 5.1.0 中新增的。

声明:本文采用BY-NC-SA协议进行授权。转载请注明转自:利用 explode() 函数获得 WordPress 中第一段的内容

« »

2 条评论

  • 其实你只要把我的代码再抽象一下,就可以是获得第N个HTML标签的内容了。

发表评论

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

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Spamcheck Enabled)