【WordPress】特定のプラグインの更新通知をオフにする


フック使用の経緯

先日、「Contact Form 7」と「Contact Form 7 add confirm」プラグインでフォームに確認画面を追加しているサイトで、
「Contact Form 7」をアップデートしたら確認画面に遷移しなくなったという相談があり、
調べてみると「Contact Form 7 add confirm」は開発が3年以上停止しているプラグインで、「Contact Form 7」を5.4にアップデートすると「Contact Form 7 add confirm」の方が動かなくなってしまうバグがあるようでした。
(参考)Contact Form 7アップデートでContact Form 7 add confirmが効かない

対処として、「Contact Form 7」のバージョンを5.3.2に戻した上、今後他のプラグインと一緒に更新されてしまわないように「Contact Form 7」の更新通知を非表示にしました。

このように、WordPressのプラグインはアップデートバージョンがあると管理画面に赤丸で更新通知が出ますが、
更新してしまうと、開発が止まっている古いプラグインなどに不具合が起こるなどの理由で更新したくない場合があります。

更新通知が表示される場所

[ダッシュボード > WordPressの更新]画面の更新表示

[プラグイン]画面の更新表示**

サンプルコード

以下のコードをfunctions.phpに追加すると特定のプラグインのみ、これらの画面に表示される更新表示がオフになるので、誤って更新してしまうことを防止できます。

functions.php
add_filter('site_option__site_transient_update_plugins', 'hide_update_plugin_notice');
function hide_update_plugin_notice($data) {
    $plugin_file = 'プラグインのメインプログラムファイル'; // (※)
    if (isset($data->response[$plugin_file])) {
        unset($data->response[$plugin_file]);
    }
    return $data;
}

※プラグインのメインプログラムファイル

WordPressインストールディレクトリからwp-content/plugins/以下の、更新通知を非表示にしたいプラグインフォルダ内のメインプログラムファイルを指定します。
例えば、「Contact Form 7」の場合、

functions.php
$plugin_file = 'contact-form-7/wp-contact-form-7.php';

となります。