当前位置: 首页 > news >正文

WordPress Porto 主题后台一直提示 Porto Functionality 插件需要更新,如何隐藏?

WordPress Porto 主题后台一直提示 Porto Functionality 插件需要更新,如何隐藏?

在使用 WordPress 搭建外贸网站或企业官网时,很多人会选择 Porto 主题。Porto 主题功能比较完整,适合 WooCommerce、企业站、产品展示站等项目。

但是在实际项目中,尤其是网站克隆、迁移、复制部署之后,WordPress 后台可能会一直出现类似下面的提示:

The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: Porto Functionality. Begin updating plugin

后台提示大概是这样的:

<divid="setting-error-tgmpa"class="notice notice-success settings-error is-dismissible"><p><strong><span>The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme:<em>Porto Functionality</em>.</span><span><aclass="button button-primary"href="/wp-admin/admin.php?page=porto-setup-wizard&step=default_plugins">Begin updating plugin</a></span></strong></p><buttontype="button"class="notice-dismiss"><spanclass="screen-reader-text">Dismiss this notice.</span></button></div>

如果这个网站只是自己使用还好,但如果后台需要交付给客户使用,这种提示就会显得不专业。尤其是克隆站点后,由于授权、主题包、插件包不一致,可能点击更新也无法正常更新。

本文记录一种比较安全、简单的方式:通过 MU 插件隐藏 Porto Functionality 更新提示


一、为什么会出现这个提示?

Porto 主题依赖一个配套插件:

Porto Functionality

这个插件主要用于支持 Porto 主题的一些扩展功能,比如:

  • Porto 自带短代码
  • 主题扩展模块
  • 页面构建相关功能
  • WooCommerce 增强功能
  • Header、Footer、模板相关功能

当 Porto 主题检测到 Porto Functionality 插件版本过低、缺失或者不匹配时,就会通过 TGMPA 机制在 WordPress 后台显示提示:

The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: Porto Functionality.

TGMPA 全称是:

TGM Plugin Activation

很多商业主题都会使用它来检测主题所需插件是否安装、启用或更新。


二、为什么不建议直接修改主题文件?

很多人第一反应是直接去主题文件里删除提示代码,比如修改:

wp-content/themes/porto/ wp-content/plugins/porto-functionality/

这种方式不推荐,原因有三个:

  1. 主题或插件一旦更新,修改内容会被覆盖。
  2. 修改商业主题核心文件,后期维护很麻烦。
  3. 不利于迁移和备份,换服务器后容易忘记改过哪里。

所以更推荐使用 WordPress 的 MU 插件方式。


三、什么是 MU 插件?

MU 插件的目录是:

wp-content/mu-plugins/

MU 插件的特点:

  • 不需要在后台手动启用
  • 放进去就会自动加载
  • 客户一般不会在普通插件列表里看到
  • 适合放一些后台增强、隐藏提示、全局修复类代码

所以,用 MU 插件隐藏后台提示,是一种比较干净的做法。


四、创建 MU 插件隐藏 Porto 提示

进入网站目录:

cd/www/wwwroot/你的域名/wp-content/mkdir-pmu-pluginsnanomu-plugins/hide-porto-notice.php

然后写入下面代码:

<?php/** * Plugin Name: Hide Porto TGMPA Notice * Description: Hide Porto Functionality update notice in WordPress admin. * Version: 1.0 *//** * 隐藏 Porto Functionality 更新提示 * 只隐藏后台提示,不影响前台页面。 */add_action('admin_head',function(){?><style>#setting-error-tgmpa {display:none!important;}.notice:has(a[href*="porto-setup-wizard"][href*="default_plugins"]){display:none!important;}</style><?php},999);/** * 防止部分后台页面异步加载后再次显示 */add_action('admin_footer',function(){?><script>document.addEventListener('DOMContentLoaded',function(){document.querySelectorAll('.notice, .settings-error').forEach(function(el){vartext=el.innerText||'';varhtml=el.innerHTML||'';if(text.includes('Porto Functionality')||html.includes('porto-setup-wizard')||el.id==='setting-error-tgmpa'){el.remove();}});});</script><?php},999);

保存后,刷新 WordPress 后台,提示就会被隐藏。


五、代码说明

1. 通过 CSS 隐藏固定 ID

Porto 这个提示的外层 ID 通常是:

id="setting-error-tgmpa"

所以可以直接通过 CSS 隐藏:

#setting-error-tgmpa{display:none!important;}

2. 通过链接特征继续匹配

有时不同页面中提示的 ID 或 class 可能发生变化,但按钮链接一般会包含:

porto-setup-wizard default_plugins

所以加上这一段:

.notice:has(a[href*="porto-setup-wizard"][href*="default_plugins"]){display:none!important;}

这可以匹配包含 Porto 插件更新按钮的 notice。

3. 通过 JavaScript 二次移除

部分后台页面可能是动态加载提示,或者 CSS 没有及时生效,所以又加了 JavaScript 二次处理:

document.querySelectorAll('.notice, .settings-error').forEach(function(el){vartext=el.innerText||'';varhtml=el.innerHTML||'';if(text.includes('Porto Functionality')||html.includes('porto-setup-wizard')||el.id==='setting-error-tgmpa'){el.remove();}});

这样即使提示后加载,也可以被移除。


六、只对客户隐藏,管理员自己保留提示

有时候我们自己还想看到这些后台提示,只是不希望客户看到。

可以根据登录用户邮箱进行判断。

例如:

<?php/** * Plugin Name: Hide Porto Notice For Clients * Description: Hide Porto Functionality update notice for client users only. * Version: 1.0 */add_action('admin_head',function(){$user=wp_get_current_user();// 开发者邮箱,改成自己的管理员邮箱$developer_emails=array('your-email@example.com');// 开发者自己不隐藏提示if(in_array($user->user_email,$developer_emails,true)){return;}?><style>#setting-error-tgmpa {display:none!important;}.notice:has(a[href*="porto-setup-wizard"][href*="default_plugins"]){display:none!important;}</style><?php},999);add_action('admin_footer',function(){$user=wp_get_current_user();$developer_emails=array('your-email@example.com');if(in_array($user->user_email,$developer_emails,true)){return;}?><script>document.addEventListener('DOMContentLoaded',function(){document.querySelectorAll('.notice, .settings-error').forEach(function(el){vartext=el.innerText||'';varhtml=el.innerHTML||'';if(text.includes('Porto Functionality')||html.includes('porto-setup-wizard')||el.id==='setting-error-tgmpa'){el.remove();}});});</script><?php},999);

把这里的邮箱:

'your-email@example.com'

改成自己的 WordPress 管理员邮箱即可。

这样客户账号登录后台时看不到提示,开发者账号登录后台时仍然可以看到。


七、注意事项

1. 这只是隐藏提示,不是修复版本兼容问题

这个方法只是让后台界面更干净,不代表 Porto Functionality 插件已经更新成功。

如果网站前台和后台功能都正常,只是不想让客户看到这个提示,可以这样处理。

但是如果出现下面这些问题,还是建议检查 Porto 主题和 Porto Functionality 插件版本是否匹配:

  • 前台页面模块错乱
  • Porto 短代码失效
  • Header Builder 异常
  • Footer Builder 异常
  • WooCommerce 产品页面样式异常
  • 页面构建器模块无法编辑
  • 后台 Porto 设置无法保存

2. 不建议隐藏所有 WordPress notice

有些人会直接隐藏全部后台通知:

.notice{display:none!important;}

不建议这样做。

因为 WordPress 的后台通知里可能包含重要信息,比如:

  • 插件报错
  • PHP 版本警告
  • 安全提醒
  • 数据库更新提醒
  • WooCommerce 状态提醒

本文代码只针对 Porto Functionality 相关提示,不会影响其他正常后台提示。

3. 克隆站点后要检查授权和插件版本

克隆 WordPress 网站时,最好检查这些内容:

  • 主题是否完整
  • 子主题是否存在
  • 必要插件是否启用
  • Porto Functionality 是否存在
  • WPBakery / Elementor 等构建器是否正常
  • WooCommerce 页面是否正常
  • PHP 版本是否兼容
  • 缓存插件是否需要重新配置

隐藏提示只是交付时的界面优化,不建议把它当成长期兼容性解决方案。


八、总结

Porto 主题后台提示:

The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: Porto Functionality.

通常是因为 Porto 主题检测到 Porto Functionality 插件版本不匹配。

如果网站是克隆站点,插件暂时无法更新,但前台和后台功能正常,可以通过 MU 插件隐藏这个提示。

推荐做法是:

wp-content/mu-plugins/hide-porto-notice.php

通过 CSS + JavaScript 精准隐藏 Porto Functionality 更新提示。

这种方式的优点是:

  • 不修改主题文件
  • 不影响前台
  • 不影响其他后台通知
  • 不容易被主题更新覆盖
  • 适合客户后台交付

最终效果就是客户登录 WordPress 后台时,不会再看到 Porto Functionality 更新提示,后台界面更加干净专业。

http://www.jsqmd.com/news/996037/

相关文章:

  • 从硬连线到微程序:单总线CPU控制器设计演进与Logisim仿真实践
  • YTSage YouTube下载器详解
  • 告别手动录入:用Java+海康SDK实现明眸门禁人员信息自动同步(Spring Boot项目集成)
  • 图解PCIE链路训练:从Detect到L0,一张图看懂状态机跳转逻辑
  • 安卓虚拟摄像头Hook技术详解:从SurfaceTexture到视频流替换的完整流程
  • 别再混淆了!深入浅出图解FPGA的IIC总线、开漏输出与三态门关系
  • 别再只会调光圈了!搞懂景深三要素,用手机也能拍出专业级虚化
  • 从ICL7107到现代万用表:拆解一块老式数字表,聊聊模拟前端设计的演进
  • TVTSyn:低延迟语音转换与匿名化技术解析
  • 5步完成低显存AI模型部署:24GB以下显卡实战指南
  • AI驱动的流域水–碳–氮多过程耦合模拟
  • java.lang.String cannot be cast to [C
  • 从“比例读数”到“真有效值”:聊聊ICL7107老芯片在万用表设计中的那些经典电路变种
  • 别再当黑盒了!用Permutation Feature Importance (PFI) 给你的PyTorch模型做个‘特征体检’
  • 泛微OA邮件发送实战:从E8到E9的演进与EmailWorkRunnable深度解析
  • 别再为OsgEarth加载天地图发愁了!手把手教你封装C++工具类(附完整源码)
  • Gemini 3.5指令顺从度实测:稳定可靠还是偶尔叛逆?
  • Skills(标准操作)
  • 别再让需求文档打架了!用Aspice SWE.1的8个实践,搞定汽车软件需求一致性
  • 山东刺绣贴亲测排行榜,2026年首选这里!
  • Spark Streaming直连Kafka:从‘能用’到‘好用’的性能调优与监控实战
  • 别再只靠拉开距离了!实测告诉你PCB上天线隔离度差10dB的真实原因
  • 从‘探索与利用’的视角,重新理解MDP中的占用度量:为什么你的RL智能体总学不到关键状态?
  • 金色传说:SAP-SD-VF051科目确定报错深度排查与实战修复
  • CHZZK:解锁Naver直播生态的Node.js开发者瑞士军刀
  • ChatGLM2-6B推理流程保姆级拆解:从输入‘你好’到模型回复的28层循环里发生了什么?
  • 第32篇:用AI生成HTML结构的提示词工程
  • Courant-Fischer定理如何解释PCA主成分的选取?一个数据降维的极值原理故事
  • 微信视频号下载工具wx_channel,完全免费!
  • 数据库索引优化:覆盖索引与索引下推的查询加速实战