您现在的位置是:首页 > cms教程 > 帝国CMS教程帝国CMS教程
帝国cms内容自动加nofollow和noopener
原创2025-09-23帝国CMS教程已有人查阅
导读在我们发布内容的时候常常会有一些文章需要添加一些外链,比如站外的内容引用,或者是一个文档内容需要方便读者用户点击,但是为了SEO考虑不能让我们的权重传递给他,多数用户还是在手动添加nofollow或者noopener很麻烦
在我们发布内容的时候常常会有一些文章需要添加一些外链,比如站外的内容引用,或者是一个文档内容需要方便读者用户点击,但是为了SEO考虑不能让我们的权重传递给他,多数用户还是在手动添加nofollow或者noopener很麻烦,noopener防止新打开的页面通过window.opener访问原始页面的window对象。也是很有必要的。每次都手动添加太累了。能不能通过程序实现?以下几种方法;
思路:判断是否为本站域名,不是则添加rel="nofollow noopener"写完之后发现一个问题,按F12查看元素是生效的,但是查看网页源代码没有rel="nofollow noopener"完成后的代码

写完才想起来搜索引擎并不能完全的理解分析JS,源代码没有的话那还是不能达到效果,下面是完成后的截图

这不白忙活了吗。所以方法一直接pass。
思路1:我们都知道帝国cms内容输出标签是['newstext'],在标签输出的模板添加函数通过内容解析函数输出标签添加rel="nofollow noopener",这样不仅元素有nofollow,源代码也有nofollow。实现方法可以按下面的来。
1. 修改内容解析函数
找到e/class/connect.php中的内容处理函数,在链接处理部分添加属性:
思路2,有没有更好的方法,一次性解决呢?方法是有的。在我们编辑内容的时候直接一次性对外链添加rel="nofollow noopener"直接写入数据库。这个方法是最效率的,只是在发布或者修改内容的时候执行一次。后续更新等操作就什么影响了。方法和代码我写在附件了,有需要的联系我下载吧。
方法一
首先我也不想动手,能坐着都不想站着,考虑最简单的方法使用JS。所以我就写了JS代码来实现功能,思路:判断是否为本站域名,不是则添加rel="nofollow noopener"写完之后发现一个问题,按F12查看元素是生效的,但是查看网页源代码没有rel="nofollow noopener"完成后的代码

写完才想起来搜索引擎并不能完全的理解分析JS,源代码没有的话那还是不能达到效果,下面是完成后的截图

这不白忙活了吗。所以方法一直接pass。
方法二
因为方法一效果不理想,怎么实现在元素和源代码都能实现rel="nofollow noopener"呢,下面是我的思路思路1:我们都知道帝国cms内容输出标签是['newstext'],在标签输出的模板添加函数通过内容解析函数输出标签添加rel="nofollow noopener",这样不仅元素有nofollow,源代码也有nofollow。实现方法可以按下面的来。
1. 修改内容解析函数
找到e/class/connect.php中的内容处理函数,在链接处理部分添加属性:
// 在内容处理函数中找到链接替换部分,添加rel属性
$content = preg_replace('/<a href="(.*?)">(.*?)<\/a>/', '<a href="$1" rel="nofollow noopener" target="_blank">$2</a>', $content);
2.多数用户还是在e/class/functions.php中添加:
function auto_add_link_attrs($content) {
// 为所有外部链接添加属性
$pattern = '/<a(.*?)href="(.*?)"(.*?)>/i';
$replacement = '<a$1href="$2"$3 rel="nofollow noopener" target="_blank">';
return preg_replace($pattern, $replacement, $content);
}
3.模板添加函数通过内容解析函数输出
<?php echo auto_add_link_attrs($navinfor['newstext']); ?>
就能实现在内容页自动添加nofollow,方法是可行的,但是我们是一个专业的程序员,肯定这个方法不太可行,每次更新解析都会消耗服务器资源,承载堪忧。数据量不大的情况下不用考虑。在大数据量高并发的时候估计直接卡顿。所以这个方法虽然简单,但是不太适合。思路2,有没有更好的方法,一次性解决呢?方法是有的。在我们编辑内容的时候直接一次性对外链添加rel="nofollow noopener"直接写入数据库。这个方法是最效率的,只是在发布或者修改内容的时候执行一次。后续更新等操作就什么影响了。方法和代码我写在附件了,有需要的联系我下载吧。
在线下载列表
本文标签:
很赞哦! ()
相关教程
图文教程
帝国cms后台实现注册/订单/反馈/投稿/留言自动给管理员发送通知邮件
1、首先配置好帝国cms后台的邮件功能,不会的看下面SMTP配置教程。代码号用的465端口测试成功,25端口没测试。教程前言前几天,代码号的注册邮件通知功能突然失效了
帝国CMS验证码打叉不显示怎么办
帝国cms验证码有时候会不显示或打叉,我的站长站总结自己的解决方法。1、检查服务器是否开启GD库
帝国CMS模板JS调用登陆模板会员信息真实姓名truename等副表字段
此方法主要是给后台--模板--公共模板--JS调用登陆模板,添加会员信息真实姓名truename等副表字段。默认帝国CMS是不支持调用会员信息副表字段的调用的!
帝国cms7.2附件下载链接显示原文件名的方法
发现问题:如果附件扩展名不为三位,调用文件名失败。 可自行修改right('$navinfor[file]',36)截取数字或命令
相关源码
-
(自适应)蓝色五金制品配件管件pbootcms网站源码下载基于PbootCMS内核开发的五金行业专用模板,采用响应式设计架构,确保产品展示在各类移动设备上的呈现。通过模块化布局与工业风视觉设计,帮助五金企业高效展示产品规格、应用场景及技术支持,建立专业可靠的行业形象。查看源码 -
(自适应)驾校培训学车活动免费pbootcms源码下载本模板基于PbootCMS内核开发,为驾校培训行业打造,具备完善的招生展示、课程预约、教练团队展示等功能模块。响应式设计适配各类移动终端,数据实时同步管理,助您高效开展线上业务。查看源码 -
帝国cms大气淘宝客网站源码带手机版带火车头采集本款创意礼物导购网站模板为礼物类电商平台设计,采用清爽简约的界面风格,具备完善的商品导购功能。系统支持在文章攻略中灵活插入商品购买链接,实现内容与电商的结合。查看源码 -
(自适应响应式)个人作品技术文章博客网站模板下载基于PbootCMS内核开发的响应式博客模板,为数字营销、技术分享类内容打造。采用前沿设计理念,兼顾内容展示与阅读体验,适配各类终端设备。通过本模板可快速构建专业级行业博客,有效传播专业知识与案例成果。查看源码 -
pbootcms模板(PC+WAP)传媒广告影视公司网站源码基于PbootCMS内核开发的全自适应传媒文化网站模板,为影视公司、广告传媒企业打造,同时支持多行业快速适配。通过替换文字图片即可转换为其他行业网站查看源码 -
(自适应)蓝色英文外贸电子科技产品带三级栏目网站模板为外贸企业设计的英文网站模板,基于PbootCMS系统开发。突出多语言支持和国际化布局,三级栏目结构清晰展示产品分类,响应式设计确保更好客户在移动端和PC端获得一致的专业体验。查看源码
| 分享笔记 (共有 篇笔记) |

