禁用 WordPress 网站指定插件的更新提示

文章首发于公众号【小白书签】:https://mp.weixin.qq.com/s/Ta2txyWJ3LfMNdQJ2EcWYw

同一些软件情况类似,部分 WordPress 插件也是越更新越难用。虽然 WordPress 插件默认手动点击后才会更新,但一方面插件的更新提醒实在是碍眼,再者也容易不小心误操作。我们当然可以直接禁止 WordPress 检测版本升级,但通常又会导致所有插件都无法更新升级。那么,如果只想禁用特定的某一款或某几款插件的更新提醒,应该怎么办呢?小白直接上代码:

代码1

function disable_specific_plugin_updates( $value ) {
    // 定义要禁用更新提示的插件
    $plugins_to_disable = array(
        'plugin-directory/plugin-file.php', // 第一个插件
        'another-plugin-directory/another-plugin-file.php', // 第二个插件
    );

    // 检查是否存在插件更新响应
    if ( isset( $value->response ) && is_array( $value->response ) ) {
        // 遍历插件列表并移除更新提示
        foreach ( $plugins_to_disable as $plugin ) {
            if ( isset( $value->response[ $plugin ] ) ) {
                unset( $value->response[ $plugin ] );
            }
        }
    }

    return $value;
}
add_filter( 'site_transient_update_plugins', 'disable_specific_plugin_updates' );

代码2

function wcr_remove_update_notifications($value) {
    // 要禁用更新提示的插件列表
    $plugins = array(
        'example-plugin/example-plugin.php', // 第一个插件
        // 这里可以添加更多插件
    );

    // 遍历插件列表
    foreach ($plugins as $key => $plugin) {
        // 检查插件是否有更新提示
        if (empty($value->response[$plugin])) {
            continue; // 如果没有更新提示,继续下一个插件
        }

        // 移除该插件的更新提示
        unset($value->response[$plugin]);
    }

    // 返回修改后的更新信息对象
    return $value;
}

// 将函数挂钩到插件更新检查过滤器
add_filter('site_transient_update_plugins', 'wcr_remove_update_notifications');

这两段代码的功能基本相同,都是用于禁用特定插件的更新提示。下面是两段代码的对比:

区别和优点

  1. 代码健壮性

    • 代码1在循环之前检查了 $value->response 是否存在并且是数组,增加了健壮性,避免了潜在的错误。
    • 代码2直接循环 $plugins,每次循环时检查 $value->response[$plugin] 是否为空,逻辑较为直接,但在某些情况下可能会略微低效。
  2. 效率

    • 代码1在判断 $value->response 是否存在时,只做了一次判断,提高了效率。
    • 代码2在每次循环时都做了 empty() 检查,略微增加了开销,但差异可以忽略不计。

选择及使用

代码1 在健壮性和可读性方面略胜一筹,它确保在操作前检查了必要的条件,减少了潜在的错误。因此,建议使用代码1。

不过,两段代码在实际使用中几乎没有性能差异,都可以完成禁用插件更新提示的任务。根据个人喜好任选一段,然后添加到当前主题“functions.php”文件中即可。您也可以自建一个插件,然后把所有自定义代码统一放到该插件,可以免受升级 WordPress 主题的影响。

最后,提醒一下,注意将代码中的插件路径替换为特定插件 php 文件的实际路径。

0

评论0

没有账号?注册  忘记密码?

社交账号快速登录

微信扫一扫关注
如已关注,请回复“登录”二字获取验证码