個々のプラグインの更新通知を無効にする


49

特定のプラグインの更新通知を無効にする方法はありますか?

プラグイン開発者として、テスト用にsvn trunkバージョンを使用して個人用サイトにいくつかのプラグインをインストールしていますが、同じプラグインはプラグインサイトから入手できます。これらの場合、WPは最新バージョンを最新の公開バージョンであると見なし、更新が利用可能であることを常に警告しようとします。

私はまだ他のプラグインの更新の通知を見たいのですUpdates (2)が、ヘッダーの通知を常に無視するのは面倒です!


単純にプラグインファイルを開き、9.9.9のようなものにバージョン番号を変更
Bainternet

@Bainternetが申し訳ありませんが、サイトはsvn-checkoutであり、プラグインはsvn:externalプラグイン開発コードへの参照に基づいているため、あまりにもハッキングされていたでしょう。実稼働サーバー上でローカルに変更されたファイルを持つことはオプションではありません。Hameedullahのフィルターは、サイトのコードリポジトリに保存されるため機能します。
カレブ

ええ、私はsvnで実行されているサイトに関する部分を見逃した
Bainternet

WordPress.orgでWebsiteguyのDisable Updates Managerプラグインを使用することもできます。
マシュー

回答:


67

たとえば、Wordpressでakismetの更新通知を表示したくない場合は、次のようにします。

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

1
私はそれをの最後に配置し./wp-config.php、プラグインファイルのパスを置き換えて、仕事をしました。
カレブ

6
それが不可能な場合は、テーマのfunctions.phpに入れて、別のプラグインファイルに入れることができます。私の見解では、これをwp-config.phpに入れるのは良い考えではありません。
ハメドゥラカーン

1
私の機能をテーマに結び付けたくないので、プラグインを追加するのは、私が持っているプラ​​グインをハッキングするのと同じくらいハッキングのようです。wp-config.phpがサイト固有の構成ハッキングを行うのに適した場所ではないと思う理由を説明できますか?
カレブ

functions.phpで問題なく機能する非常に優れたソリューション。別のunset()を追加するだけで、リストにプラグインを追加するのは簡単です...良いヒントHameedullah ..
Lars Koudal

2
@Calebと同じコメントを持つ人のために、wp-contentフォルダーに新しいフォルダーmu-pluginsを作成し、そこにドロップする小さなプラグインを作成します。上記のように追加することは、wp-config.php絶対に間違った場所です。
チャールズ

31

Hameedullah Khanの答えはPHPの警告を投げます。このプラグインの応答を設定解除する前に、このif句を含めて、オブジェクトであることを確認します。

「警告:非オブジェクトのプロパティを変更しようとしています」

警告(プラグインファイル自体のコード)を回避するには、これを試してください。

// remove update notice for forked plugins
function remove_update_notifications($value) {

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

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

これを実際のプラグインに入れたいです。コードを編集または分岐し、更新で編集内容を失いたくないため、プラグインの更新のみを無効にしたため、プラグインを既に編集しており、それ以上編集することは気にしません。関数ファイルを少しきれいに保ちます。しかし、それを関数ファイルに入れて、その方法の利点は、そのようなプラグインの別の設定されていない行を追加することで、更新から複数のプラグインを削除できることです(functions.phpのコード):

// remove update notice for forked plugins
function remove_update_notifications( $value ) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ 'hello.php' ] );
        unset( $value->response[ 'akismet/akismet.php' ] );
    }

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

このためのTHX。プラグイン内でこのコードを直接使用すると問題が発生し、1つのプラグインだったので問題ないように見えましたが、他のプラグイン(diff func names)でそれをやるとすぐに、すべてのプラグインの通知とwp-repoプラグインの「詳細の表示」リンクも失われました消えた。あなたのチェックを使用するが、私のテーマのfunctions.phpに配置することは、他のプラグインの更新通知の干渉なしでより信頼できます。最後に、プラグインに含まれないことは、そのプラグインが機能するためにアクティブにする必要がないという利点があります。このコードでプラグインを無効にすると、明らかに更新通知が再び表示されます。
フィリップイングラム

2

コードですべての更新通知を無効にする

function remove_core_updates(){
        global $wp_version;return(object) array('last_checked'=> time(),'version_checked'=> $wp_version,);
    }
    add_filter('pre_site_transient_update_core','remove_core_updates');
    add_filter('pre_site_transient_update_plugins','remove_core_updates');
    add_filter('pre_site_transient_update_themes','remove_core_updates');

コードは、WordPressコア、プラグイン、およびテーマの更新通知を無効にします。


「個々のプラグイン」が重要です
Gangesh

@Gangesh、私は彼が特定のプラグインの通知を無効にしたいと思うと思います
スーパーモデル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.