您现在的位置是:首页 > 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图集默认调用输出的格式很可恶,一流资源网之前分享过一篇“帝国CMS PHP调用图集中所有图片列表”
帝国二次开发多值字段PHP调用方法
帝国CMS当使用多值字段时,调用就成了个大问题,用默认标签调用会出现“|”,所以只能用PHP先分隔,再循环调用了。
帝国CMS包含登陆,注册,留言,反馈,点击刷新验证码代码写法
帝国CMS点击刷新验证码代码大全,包含登陆、注册、留言、反馈的验证码代码整理分享,以免到处找。
帝国cms内容存文本有什么用?
为了减少数据库负担,使大数据的存放与运行更高效,帝国引入了针对大数据网站而设计的内容存文本功能(数据库与文本相结合)。帝国系统的内容存文本功能有两种特性:
相关源码
-
粉色家政月嫂保姆公司pbootcms网站模板(PC+WAP)为家政服务、月嫂保姆企业打造的营销型解决方案,基于PbootCMS内核开发,采用温馨粉色主题传递行业温度。PHP7.0+高性能架构支持SQLite/MySQL双数据库查看源码 -
pbootcms模板(PC+WAP)传媒广告影视公司网站源码基于PbootCMS内核开发的全自适应传媒文化网站模板,为影视公司、广告传媒企业打造,同时支持多行业快速适配。通过替换文字图片即可转换为其他行业网站查看源码 -
(自适应响应式)黑色酷炫高端数码摄影pbootcms网站模板源码本模板基于PbootCMS开发,为摄影工作室、个人摄影师及摄影爱好者设计。采用深色系风格,突出摄影作品展示效果,适配各类数码设备浏览。适用于作品集展示查看源码 -
(自适应)行业协会工会机构单位pbootcms网站源码本模板基于PbootCMS内核开发,为行业协会、工会组织及机构单位量身打造。采用响应式布局设计,可自动适配手机、平板等移动设备,数据实时同步更新。模板包含行业资讯查看源码 -
(响应式)轴承机械五金零件产品pbootcms落地推广单页源码下载为轴承、机械零件等工业产品打造的响应式单页模板,基于PbootCMS内核开发,助力企业快速构建专业级产品展示页面。模板采用工业风设计语言,突出产品参数与性能优势,适用于设备制造商、零部件供应商等B2B场景推广。查看源码 -
(自适应)蓄电池能源智能数码科技产品pbootcms模板源码下载本款基于PbootCMS开发的网站模板为蓄电池及能源科技企业设计,特别适合锂电池、储能系统、新能源电池等产品的展示与推广。查看源码
| 分享笔记 (共有 篇笔记) |

