您现在的位置是:首页 > 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"直接写入数据库。这个方法是最效率的,只是在发布或者修改内容的时候执行一次。后续更新等操作就什么影响了。方法和代码我写在附件了,有需要的联系我下载吧。
在线下载列表
本文标签:
很赞哦! ()
相关教程
图文教程
PHP调用帝国CMS当前三级栏目信息的方法
1、获取当前栏目ID(二级栏目时也是),2、获取当前父栏目ID,3、获取当顶级栏目ID(三级栏目的顶级)
帝国CMS二次开发无刷新Ajax加载更多列表信息写法教程
本帝国cms插件利用AJAX实现无刷新加载更多的列表信息,用查看更多按钮来替代翻页功能,无限加载。
帝国CMS提示请查看目录权限是否为0777文件上传不成功怎么办
帝国CMS网站后台上传附件提示“请查看目录权限是否为0777,文件上传不成功”。问题原因及解决办法有二:
帝国CMS7.0怎么设置IIS伪静态教程
帝国CMS7.0IIS伪静态教程步骤:1、进后后台 - 系统 - 系统设置 - 伪静态参数设置 - 都点击默认2、在网站根目录(web文件夹)下建一个文件,文件名及后缀格式为:httpd.ini
相关源码
-
(自适应)蓄电池能源智能数码科技产品pbootcms模板源码下载本款基于PbootCMS开发的网站模板为蓄电池及能源科技企业设计,特别适合锂电池、储能系统、新能源电池等产品的展示与推广。查看源码 -
(自适应响应式)html5蓝色智能水表营销型网站pbootcms模板下载PbootCMS内核开发,为智能水表企业打造的营销型网站解决方案,本模板基于PbootCMS内核开发,为智能水表及相关行业企业设计,采用HTML5+CSS3技术构建,具有响应式布局。查看源码 -
(自适应)建站广告公司工作室作品展示品牌策划设计pbootcms源码下载基于PbootCMS开发的创意服务展示系统,内置作品集展示、服务流程图等专业模块,预设客户案例、设计流程等创意行业专属栏目结构。查看源码 -
(自适应响应式)英文外贸医疗科研耗材设备pbootcms网站模板为医疗设备和外贸企业设计的响应式网站模板,基于PbootCMS系统开发。突出医疗产品认证展示和国际化特性,通过专业化的产品参数展示模块和文档管理系统,满足医疗行业严格的信息披露要求。查看源码 -
(自适应)帝国CMS7.5模板淘宝客导购博客文章源码本模板基于帝国CMS7.5内核深度开发,为电商导购类网站设计。采用响应式布局技术,确保在手机、平板及电脑端均能获得优质浏览体验。模板内置商品推荐模块与优惠信息展示区,可快速搭建专业导购平台。查看源码 -
(自适应)宽屏大气的净水器智能电子设备网站pbootcms源码下载本模板基于PbootCMS内核开发,为净水器设备、智能电子设备企业量身打造,采用响应式设计技术,可快速构建专业级企业官网。通过本模板可高效展示产品技术参数、解决方案及企业服务优势。查看源码
| 分享笔记 (共有 篇笔记) |

