您现在的位置是:首页 > 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二次开发推广赠送点数的解决方法
链接地址为:“http://网站地址/e/tool/gfen?id=会员帐号ID”或“http://网站地址/e/tool/gfen?n=会员用户名”信息基本参数配置:修改“e/tool/gfen/index.php”文件的参数设置
帝国CMS后台前台上传文件大小和类型限制怎么去掉
一般服务器php.ini环境配置文件默认上传大小为2048K,记录在php.ini文件里!然后找到:upload_max_filesize 这个后面的数字就是默认限制的大小
帝国CMS利用PHP判断当前页面是否为首页的方法
我们在做模版的时候,习惯性把相同的块做成公共模版变量,方便以后修改。但是往往一个大块里面有那么一两个的样式是不一样的,比如一个客户站的标签,当该标签位于首页的时候
帝国CMS8.0升级功能汇总
一、新增支持postgreSQL数据库和国产数据库:(支持国产数据库如:国产华为高斯(openGauss)、国产金仓数据库(kingbase)等)1、为了适配其它数据库,所有数据表查询限制数量单独函数返回,并保存在各数据库操作类文件里。
相关源码
-
(PC+WAP)绿色环保设备环保企业网站模板源码下载基于PbootCMS内核开发的响应式企业模板,为环保设备制造、环境技术服务等企业打造,通过模块化设计实现多行业快速适配。查看源码 -
帝国cms7.5模板情感文学名言名句心情文章类源码下载带手机本模板基于帝国CMS7.5开发,为情感文学类网站设计。整体风格温馨雅致,布局合理清晰,特别适合建设情书分享、文学作品展示类网站。模板采用响应式设计,能够自动适配各种终端设备。查看源码 -
(PC+WAP)铝合金门窗定制pbootcms网站模板源码为铝合金门窗、定制门窗企业打造的高性能网站模板,基于PbootCMS开源内核开发,采用HTML5自适应架构,PC与手机端数据实时同步,覆盖全终端用户交互场景。查看源码 -
帝国CMS7.5二次元COS漫展网站模板源码免费下载本模板基于帝国CMS 7.5版本深度开发,为二次元文化分享领域设计。采用UTF-8编码,支持中文内容展示,特别适用于COSPLAY作品展示、漫展信息发布等二次元相关内容的网站建设。模板结构清晰,布局合理,充分考虑了二次元用户群体的浏览习惯和审美需求。查看源码 -
帝国cms7.5淘宝客电商品牌特价带手机站带会员模板下载为电商品牌特价展示设计的帝国CMS模板,集成PC端与移动端双平台适配。采用瀑布流商品布局,支持品牌分类聚合展示,突出特价促销视觉冲击力。查看源码 -
pbootcms(自适应)SEO优化排名服务公司网站模板核心定位为SEO排名服务商打造的营销型网站框架,集成PbootCMS开源系统的高效管理能力与SEO最佳实践方案,助力企业快速建立专业的技术服务形象。查看源码
| 分享笔记 (共有 篇笔记) |

