• 售前

  • 售后

热门帖子
入门百科

WordPress文章摘要小记

[复制链接]
心随674 显示全部楼层 发表于 2021-8-15 19:32:59 |阅读模式 打印 上一主题 下一主题
其实我个人并不是很喜欢这种择要的体现方式,但是这个方法用起来比力方便而已。
  WordPress是有择要功能的,写文章的时间填写一些择要是一个很好的风俗,我主题设置择要给搜索引擎看的。
  不过并不是许多人在发表文章的时间填写这个择要,以是我也一直纠结是否在主题设计的时间首选利用择要模式。
  网上利用择要的代码大多是如许的

复制代码代码如下:
<?php if(!is_single()) {
the_excerpt();
} else {
the_content(__('(more...)'));
} ?>

首选体现择要,假如没有择要则体现全部文章,话说体现全部文章肯定是不给力的,万逐一篇文章很长怎么办,首页能放几篇文章?
  今天看到一篇很好的文章,办理了这一题目,文章想到了我所想要的,非常不错。较完善的WordPress文章择要(截断)方案
  首先体现择要,假如没有择要的则体现用more标签截断的,假如没有more标签则体现文章截取多少字的,假如主机不支持mb_strimwidth函数截断,则才体现全文。
  各人以为这种体现方法怎么样,假如各人以为OK,我新版的主题将利用这个作为首页文章择要了。

复制代码代码如下:
<?php //这是为了在单篇文章(或页面)直接体现全部内容,而倒霉用以下的判断
if(is_singular()){the_content();}else{
//界说两个$
$pc=$post->post_content;
$st=strip_tags(apply_filters('the_content',$pc));
//判断是否存在 内置择要
if(has_excerpt())
the_excerpt();
/*利用正则表达式实验匹配more标签,
并判断假如存在more标签, 大概正文内容长度小于300, 则直接以more标签方式体现,
即是说, 有more便体现more, 没more且长度小于300则直接体现全文.
我利用了mb_strwidth来判断长度.
*/
elseif(preg_match('/<!--more.*?-->/',$pc) || mb_strwidth($st)<300)
the_content('Read more »');
//否则...以下
elseif(function_exists('mb_strimwidth'))//判断是否支持mb_strimwidth函数
echo'<p>'//mb_strimwidth截断后得到的是纯文本, 以是我给它包了一层 p
.mb_strimwidth($st,0,300,' ...')//对文本内容截断, 从位置0开始往后截取300长度, 超出部分以点点点更换
.'</p><p class="read-more"><a title="'//给截断的内容添加一个与 STEP 1 完全如出一辙的"more标签"...
.the_title("继续阅读: ","",false)//注意这里与 STEP 1 相比, 利用了另一个函数来获取标题
.'" rel="nofollow" href="'
.post_permalink()
.'" class="more-link">Read more »</a></p>';
else the_content();//末了没有选择的选择...
}?>

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作