您现在的位置是:首页 > 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列表分页函数位置修改方法
帝国cms列表分页函数有一个前台和后台的,前台的列表分页函数在e/class/t_functions.php里面,打开文件即可看到,包括内容页分页
帝国CMS7.2/7.5开启SSL,https后台登录空白的解决方法
7.5版本已经有了http和https自动识别,但是因为一些疑难杂症的原因,自动识别判断的不准,后台登录也是空白,
帝国CMS用户组表注释phome_enewsgroup(Ctrl+G查询)
下面表是帝国cms用户组表phome_enewsgroup包含字段名和字段类型及注解Ctrl+G查询
帝国cms灵动标签去除重复标题信息的方法
因为网站是采集的,栏目设计的不严谨,有些地方栏目会发布相同的标题,因此首页调用时会有很多重复的文章出现,这时就需要去重。
相关源码
-
帝国cms7.5文库范文/付费下载/复制付费/带支付源码免费下载本模板为文库、文档分享、知识付费类平台设计,提供完整的内容变现解决方案。系统支持多种内容展示与付费模式,满足不同场景下的内容价值转化需求,帮助平台实现内容资源的有效管理和商业化运营。查看源码 -
(自适应)帝国cms7.5模板新闻资讯门户带会员中心基于帝国CMS7.5内核开发的HTML5响应式模板,为新闻机构、媒体门户及资讯聚合平台设计。通过模块化布局实现图文混排查看源码 -
(自适应响应式)HTML5建筑工程公司建筑集团网站模板下载基于PbootCMS内核开发的响应式建筑行业网站模板,为建筑工程公司、建筑集团等企业打造,通过简洁大气的设计风格展现企业专业形象。查看源码 -
(自适应响应式)APP应用程序软件介绍落地页源码免费下载该模板为营销技术从业者设计,提供专业的内容展示平台。采用响应式布局,适配软件介绍、APP推广等营销场景,通过可视化后台可快速搭建符合行业特性的展示网站。查看源码 -
(自适应响应式)高端家用办公家具家居桌椅pbootcms模板下载为办公家具企业设计的响应式网站模板,涵盖产品展示、案例呈现、企业介绍等核心模块。通过可视化后台可快速发布实木桌椅、系统家具、办公屏风等产品信息,帮助客户直观了解材质参数与空间搭配方案。查看源码 -
(自适应响应式)宠物经验资讯咨询博客pbootcms网站源码下载除宠物资讯领域外,通过内容替换可快速适配宠物用品商城、宠物医疗咨询平台、宠物训练教程网站、动物保护组织官网、水族爱好者社区等垂直领域。查看源码
| 分享笔记 (共有 篇笔记) |

