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

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

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

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

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

后台提示大概是这样的:

html 复制代码
<div id="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>
        <a class="button button-primary" href="/wp-admin/admin.php?page=porto-setup-wizard&step=default_plugins">
          Begin updating plugin
        </a>
      </span>
    </strong>
  </p>
  <button type="button" class="notice-dismiss">
    <span class="screen-reader-text">Dismiss this notice.</span>
  </button>
</div>

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

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


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

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

text 复制代码
Porto Functionality

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

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

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

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

TGMPA 全称是:

text 复制代码
TGM Plugin Activation

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


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

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

text 复制代码
wp-content/themes/porto/
wp-content/plugins/porto-functionality/

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

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

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


三、什么是 MU 插件?

MU 插件的目录是:

text 复制代码
wp-content/mu-plugins/

MU 插件的特点:

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

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


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

进入网站目录:

bash 复制代码
cd /www/wwwroot/你的域名/wp-content/
mkdir -p mu-plugins
nano mu-plugins/hide-porto-notice.php

然后写入下面代码:

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) {
                var text = el.innerText || '';
                var html = 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 通常是:

html 复制代码
id="setting-error-tgmpa"

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

css 复制代码
#setting-error-tgmpa {
    display: none !important;
}

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

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

text 复制代码
porto-setup-wizard
default_plugins

所以加上这一段:

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

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

3. 通过 JavaScript 二次移除

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

javascript 复制代码
document.querySelectorAll('.notice, .settings-error').forEach(function (el) {
    var text = el.innerText || '';
    var html = el.innerHTML || '';

    if (
        text.includes('Porto Functionality') ||
        html.includes('porto-setup-wizard') ||
        el.id === 'setting-error-tgmpa'
    ) {
        el.remove();
    }
});

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


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

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

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

例如:

php 复制代码
<?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) {
                var text = el.innerText || '';
                var html = el.innerHTML || '';

                if (
                    text.includes('Porto Functionality') ||
                    html.includes('porto-setup-wizard') ||
                    el.id === 'setting-error-tgmpa'
                ) {
                    el.remove();
                }
            });
        });
    </script>
    <?php
}, 999);

把这里的邮箱:

php 复制代码
'your-email@example.com'

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

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


七、注意事项

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

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

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

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

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

2. 不建议隐藏所有 WordPress notice

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

css 复制代码
.notice {
    display: none !important;
}

不建议这样做。

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

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

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

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

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

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

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


八、总结

Porto 主题后台提示:

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

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

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

推荐做法是:

text 复制代码
wp-content/mu-plugins/hide-porto-notice.php

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

这种方式的优点是:

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

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

相关推荐
Web极客码2 天前
使用人工智能翻译WordPress网站
服务器·人工智能·wordpress
豆豆4 天前
2026年企业如何选择CMS网站管理系统和建站系统
cms·wordpress·建站系统·内容管理系统·网站管理系统·建站软件·建站工具
小牛itbull4 天前
告别传统主题开发!ReactPress Theme Starter —— 用 Next.js 15 构建现代化无头博客
javascript·cms·react·wordpress·nextjs·reactpress·blog-theme
TG_yunshuguoji9 天前
阿里云代理商:阿里云部署 WordPress的3 种方案
人工智能·阿里云·云计算·wordpress·ai智能体
Web极客码1 个月前
加快WooCommerce性能
服务器·wordpress·网站
豆豆1 个月前
WordPress至PageAdmin CMS跨平台迁移技术指南:应对环境约束的系统化过渡方案
cms·wordpress·建站系统·内容管理系统·网站管理系统·pageadmin
Web极客码1 个月前
Akismet对WordPress防垃圾评论
服务器·搜索引擎·wordpress
尘中客1 个月前
【2026最新】如何用 WordPress 零代码搭建八字排盘/紫微斗数网站(附免费开源插件)
php·api·wordpress·建站源码·网站引流
WordPress学习笔记1 个月前
B2B独立站与B2C独立站的主题模板选择的对不对很重要
wordpress·gracetheme·wodetheme