在WordPress这个强大的内容管理系统(CMS)中,摘要函数(the_excerpt)是一个不可或缺的工具。它可以帮助我们快速生成文章摘要,让读者在阅读全文前对有一个大致的了解。本文将深入探讨WordPress摘要函数的原理、用法以及优化技巧,帮助你打造高效的内容展示。
一、摘要函数简介
摘要函数(the_excerpt)是WordPress提供的一个内置函数,用于输出文章摘要。它通常在文章列表、搜索结果和单篇文章的摘要部分显示。通过调用这个函数,我们可以轻松地获取文章的摘要内容。
二、摘要函数原理
摘要函数的核心在于对的处理。它首先会查找文章中的第一个换行符,将换行符之前的文本作为摘要内容。如果文章中没有换行符,那么摘要函数将输出文章的前150个字符。
以下是一个简单的示例:
“`php
the_excerpt();
>
“`
输出结果可能是:
> “本文主要介绍了WordPress摘要函数的原理、用法以及优化技巧,帮助你打造高效的内容展示。”
三、摘要函数用法
1. 获取文章摘要
在文章模板中,我们可以通过调用`the_excerpt()`函数来获取文章的摘要内容。
“`php
the_excerpt();
>
“`
2. 自定义摘要长度
默认情况下,摘要函数会输出文章的前150个字符。如果我们需要自定义摘要长度,可以通过以下方式实现:
“`php
echo wp_trim_excerpt(”, 200);
>
“`
其中,第一个参数`”`表示不修改原始摘要,第二个参数`200`表示将摘要长度设置为200个字符。
3. 自定义摘要内容
如果我们需要对摘要内容进行进一步的定制,可以通过以下方式实现:
“`php
$excerpt = get_the_excerpt();
$excerpt = substr($excerpt, 0, 100);
echo $excerpt;
>
“`
这个示例中,我们首先获取文章的摘要内容,然后截取前100个字符作为新的摘要。
四、摘要函数优化技巧
1. 避免截断关键词
在处理摘要时,我们希望关键词能够完整地显示。以下是一个优化技巧:
“`php
$excerpt = get_the_excerpt();
$excerpt = preg_replace(‘/””s+/’, ‘ ‘, $excerpt);
$words = explode(‘ ‘, $excerpt);
$last_space = strrpos($excerpt, ‘ ‘);
$last_space_pos = strlen($excerpt) – strlen($excerpt) + $last_space;
if (strlen($excerpt) > 150) {
$words = array_slice($words, 0, -1);
$excerpt = implode(‘ ‘, $words);
$excerpt = substr($excerpt, 0, $last_space_pos);
}
echo $excerpt;
>
“`
这个示例中,我们首先对摘要内容进行空格处理,然后根据关键词长度截取摘要内容。
2. 避免重复摘要
有些文章的摘要内容可能与其他文章相同。为了避免这种情况,我们可以通过以下方式实现:
“`php
$excerpt = get_the_excerpt();
$excerpts = get_posts(array(‘posts_per_page’ => -1, ‘post_type’ => ‘post’, ‘fields’ => ‘ids’));
$unique_excerpt = true;
foreach ($excerpts as $post_id) {
$post_excerpt = get_post_field(‘post_excerpt’, $post_id);
if ($post_excerpt === $excerpt) {
$unique_excerpt = false;
break;
}
}
if ($unique_excerpt) {
echo $excerpt;
} else {
echo ‘暂无摘要’;
}
>
“`
这个示例中,我们首先获取所有文章的摘要内容,然后判断当前文章的摘要是否唯一。如果唯一,则输出摘要;否则,输出“暂无摘要”。
WordPress摘要函数是一个强大的工具,可以帮助我们快速生成文章摘要,提升用户体验。通过本文的介绍,相信你已经对摘要函数有了深入的了解。在实际应用中,我们可以根据需求调整摘要长度、内容,甚至进行个性化定制。希望本文能对你有所帮助,让你在WordPress内容展示方面更加得心应手。
| 功能 | 描述 |
|---|---|
| 获取文章摘要 | 使用`the_excerpt()`函数输出文章摘要 |
| 自定义摘要长度 | 使用`wp_trim_excerpt(”,200)`函数自定义摘要长度 |
| 自定义摘要内容 | 通过截取、修改等方式自定义摘要内容 |
| 避免截断关键词 | 在处理摘要时,尽量保证关键词的完整性 |
| 避免重复摘要 | 检查当前文章的摘要是否唯一,避免与其他文章的摘要内容重复 |
以上就是本文关于WordPress摘要函数的深度解析,希望对你有所帮助。在今后的实际应用中,不断尝试和优化,相信你会打造出更加高效的内容展示。
wordpress如何实现标签文章列表
1.你需要创建一个widget,在谷歌里搜索widget api,找到官方文档,文档里有创建widget的示例代码
2.在widget的public function form($instance)函数中定义一个下拉列表,里面列出所有的tag标签,tag标签可以用get tags()函数获得,这样你就能在widget里面选择要显示哪个tag下的文章了。记得在public function update函数中保存选择的tag
3.在public function widget($args,$instance)中写上你要显示的内容。从你截图看,第一篇文章显示特色图像(调用the_post_thumbnail()),标题和摘要。后面的现实列表。
你可以从widget参数获得要选择哪个tag标签下的文章,接下来用get_posts()函数或者WP Query获取文章显示就行了
如何让wordpress列表页只显示文章的部分内容
第一步:在后台主题管理的index.PHP文件中找到显示全文的函数:
第二步:这个代码所属div层作用是显示该文摘或文章全文。比如曲豆的该层代码是:
将它们替换为:
或替换为:
第三步:以上方法显示wordpress摘要,其中的<?php the_excerpt();?>显示摘要函数。在编辑发表文章时仍然需要点击编辑器上那个”split post with more tag”按钮(快捷方式是Alt+t)。
那么如何让wordpress分类列表页只显示文章的标题列表?其实很简单:直接把这个层里代码都删掉,只留下:
如何更改WordPress首页文章摘要字数
每个主题是不一样的。你要根据主题来确定代码
下面是分享的:
有些WordPress主题首页摘要字数太多,有的甚至把全部文字展示出来,看着很不爽,于是搜了一下如何更改,果然让我搜到了,哈哈,真是黄天不负有心人。
方法一:修改WordPress文件。
优点:操作简单。
缺点:博客升级后会失效,需重新修改。
找到WorsPress目录wp-includes下formating.php文件,查找unction wp_trim_excerpt($text)函数,再找到excerpt_length,默认值是55,修改成需要的值即可。
方法二:自定义函数,修改主题function.php文件。
(楼主推荐)
优点:一劳永逸。
缺点:换主题后需要重新设置。
The_excerpt()在Wordpress中,默认是截取55个英文单词的,但是在中文中却是无法截取到55个汉字。原因是因为在wordpress的the_excerpt()函数中用到了
$text= implode('',$words);
在php中是用空格来截取字数的,而我们汉字就杯具了,因为我们汉字是相连的,没有空格来区分,所以在使用中文的时候,经常地我们使用the_excerpt()函数的时候,截取出来的结果是全文!
对于这个情况我们可以用PHP函数mb_substr去解决。
所以在Wordpress中可以打开主题中的funtions.php,加入下面的代码:
function chinese_excerpt($text,$lenth=100){
$text= mb_substr($text,0,$lenth);
return$text;
}
add_filter('the_excerpt',' chinese_excerpt');
我这里设置默认的截取长度是100个字符,50个汉字。可以在上面的代码中的$lenth=100设定为任意的截取长度。
或者直接使用中文截取法,加入如下代码
function custom_excerpt_length($length){
return 200;
}
add_filter('excerpt_length','custom_excerpt_length', 999);
200为字数,可以修改为自己的值。
需要安装服务器打开php mb_string扩展。
1、安装php-mbstrin扩展,终端执行。
sudo yum install php-mbstring。
2、切换root用户。
sudo-s
3、修改php.ini,终端执行。
echo'extension=mbstring.so'>>/etc/php.ini
4、重启web服务器。
apache:
sudo service httpd restart
nginx:
sudo service nginx reload




