単一プラグインの自動更新をオフにする


10

更新したくないプラグインがあります。これはベストプラクティスではないことを認識していますが、この場合は必ず実行する必要があります。WordPressが特定のプラグインを自動更新するように促すのを止める方法はありますか(ただし、他のすべてのプラグインについては通常どおりアラートを出します)。


6
プラグインのメインファイル内のバージョン番号を増やします。99.9(私は実際に必要だとは思わないが)...とも良い測定のためのreadmeファイル内の同じ変更を行う。..
t31os

プラグインがバージョン番号を次のように更新しても、バージョン番号の調整は機能します1.10.1か?
emc 2013

回答:


11

これをテーマのfunctions.phpに配置します

// Disable update notification for individual plugins - see my example of plugin block-spam-by-math-reloaded as to how to use this function

function filter_plugin_updates( $value ) {
    unset( $value->response['plugin-folder-name/plugin-file-name.php'] );    
    return $value;
}

add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

回答にGoogle +1ボタンのコードがある理由がわかりません...おそらく残っています...
brasofilo

残りました。ごめんなさい。
Tara

3
このソリューションは、他のプラグインを有効または無効にしているときに警告をスローします。Warning: Attempt to modify property of non-object in /home/XXXXXX/public_html/wp-content/themes/XXXXXXX/custom-functions.php on line 15
2014年

これを使用しているWPのバージョンは何ですか?
fedmich 2015

7

T31osの答えは正しかった:プラグインのメインファイル内のバージョン番号を増やしてください。99.9 ...そして、readmeファイル内にも同じ変更を加えて、適切に測定します(実際には必要ないと思います)。– t31os


5

タラの答えはうまくいきますが、プログラマーはメインのプラグインファイルへのパスを入力する必要があり、その特定のテーマが有効になっている間のみ機能します。代替ソリューションは次のようになります。

add_filter('site_transient_update_plugins', 'remove_update_notification_1234');
function remove_update_notification_1234($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
    return $value;
}

1行バージョン:

add_filter('site_transient_update_plugins', function ($value) { unset($value->response[ plugin_basename(__FILE__) ]);return $value; });

このコードを、.php無効にするプラグインのメインファイルの上部に配置します。これをサイトで複数回使用する場合_1234は、フィルターと関数名を別の乱数のセットに変更して、関数名が重複しないようにします。

特定のプラグインの更新を無効にする場合、それは何らかの理由でプラグインを編集していることが原因である可能性があります。そのため、そのプラグインにいくつかの行を追加することは有効です。


1
これは私の意見では最良の答えです。自分でプラグインを編集しているために更新を無効にしている場合は特にそうです。emcに感謝します。
ネイサン

3

このコードを使用しているときに他のプラグインをインストールまたは更新すると、上記の「gurung」のようなPHP警告が表示されました。WP 4.3.1でPHPの警告を見ました。

私は問題についてstackexchangeに関する他のいくつかの投稿を見つけました、そして私はプラグイン参照の配列をループして最初にそのプラグインへの参照があるかどうかを確認する関数を思いつきました(非オブジェクトに関するPHP警告を避けるために)ない場合)、オブジェクトがある場合は、元のコードと同じように設定を解除します。

単体テストは行っていませんが、プラグインの更新/インストールごとにPHPの警告が表示されていましたが、今は表示されません。

function filter_plugin_updates( $value ) {

  // Add references to plugins you want to disable update notices for in the $plugins array
  $plugins = array(
    'k-elements/setup.php'
  );

  foreach( $plugins as $plugin ) {
    if ( isset( $value->response[$plugin] ) ) {
      unset( $value->response[$plugin] );
    }
  }

  return $value;

}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

1

または、同じプラグインではないように名前を変更するだけです。
フォルダーだけでなく、Readmeおよびプラグインヘッダーでも名前を変更する必要があります。


1

私はnaraのtaraのコードスニップの実装を持つサイトを継承しました。私を狂わせた。とにかくスニッパーがカスタムであることに気づくまで、私はプラグインでコードを編集するのをためらっていました。

エラーを解消するには、これを変更します。

unset($value->response[ plugin_basename(__FILE__) ]);

これに:

if($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
}

一部の人にとっては明白かもしれませんが、重要なのは、それがすでにカスタマイズされているため編集できることです。そして、全体のポイントはプラグインを更新しないようにすることなので、おそらく更新によって上書きされません。


0

プラグインフォルダーの名前を変更するだけで更新を防止できます(または、単一ファイルのプラグインの場合は、そのPHPファイルの名前を変更します)。これは、最も簡単な解決策です。さらに、このアプローチにより、コードを変更したという事実が「将来のあなた」を含む将来の開発者に透過的になります。


0

メインプラグインファイルの上位バージョンが最適ですが、特別なハックを追加する場合のみです。ヌル/未定義の番号を呼び出し、そのバージョンのままになります。例:

バージョン:

これにより、2100では、9.9.9以降では更新されなくなります。これは、廃止される可能性のあるプラグインに対するシンプルなアプローチであり、いつか置き換えられる予定です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.