PHPCMS是国内成熟的PHP内容管理系统,截止2024年第三方行业数据显示,国内仍有超12%的中小站点基于PHPCMS搭建。摘要标签是内容列表页、详情页提取内容简介的核心调用方式,本质是从内容正文中按设定规则截取生成简介,可减少手动编辑摘要的重复工作量,同时满足页面排版与SEO需求。
调用摘要标签前需确认两项基础条件,从根源避免调用失败:
content内容字段与description摘要字段列表页需要在内容循环中调用标签,主流写法分为两种:纯自动截取正文、优先调用手动摘要。
纯自动截取正文摘要的核心代码如下:
``` {loop $data $r}{str_cut(strip_tags($r[content]), 200, '...')}
代码参数说明:200为截取的字节长度,UTF-8编码下1个汉字占3字节,GBK编码下1个汉字占2字节,可根据需求调整;第三个参数'...'为截取后追加的后缀,可自定义修改或删除。strip_tags用于过滤HTML标签,避免排版错乱。
优先调用手动填写摘要的写法,兼顾SEO灵活性,目前超80%的PHPCMS站点采用该方案,代码如下:
``` {loop $data $r}
{if $r[description]} {$r[description]} {else} {str_cut(strip_tags($r[content]), 200, '...')} {/if}
详情页无需循环输出,直接调用全局变量即可,自动截取正文的代码如下:
```优先调用手动摘要的代码如下:
```该问题的核心诱因有两种:一是变量名错误,列表页循环中变量为$r[content],详情页全局变量为$content,名称写错会直接输出空白;二是内容模型未启用对应字段,需进入后台内容→内容模型管理→修改对应模型,确认内容、摘要字段已勾选启用。
PHPCMS内置str_cut函数默认按字节计数,很多开发者混淆编码规则导致参数错误。UTF-8编码要输出100个汉字,需设置参数为300;GBK编码输出100个汉字需设置参数为200,调整对应参数即可解决问题。
直接截取正文会将正文中的HTML标签一同截取,破坏页面布局。解决方法为在str_cut函数内嵌套strip_tags过滤所有标签,仅保留纯文本内容,修改后的调用逻辑可从根源避免该问题。
摘要输出直接影响页面搜索引擎排名,需遵循两项合规要求:
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图