web-dev-qa-db-ja.com

Wordpress-プラグインの更新を無効にする方法

GPLv2ライセンスの下でWordpressの素晴らしいプラグインを見つけて、ソースコードに多くの変更を加えました。プラグインは何か他のことをします。著者(元のプラグイン著者のクレジット)、URL、バージョン番号(xxx 1.5からyyy 1.0まで)。

すべてがうまく機能しますが、Wordpress=はプラグインの更新をチェックし、プラグインyyy 1.0をxxx 1.0として扱い、利用可能な更新に関する通知を表示します。

変更したプラグインyyy 1.0は、WPリポジトリからではなく、コンピューターからファイルをコピーすることによってインストールされました。

他に何を変更する必要がありますか?

40
pp_1

プラグインファイルには、更新をチェックする関数があります。元の作者はこれに何でも名前を付けることができたので、コードを調べて各関数とその機能を確認する必要があります。私は、この機能が何をするかに関して非常に明白になると想像します。

または、これをプラグインファイルに追加できます。

add_filter( 'http_request_args', 'dm_prevent_update_check', 10, 2 );
function dm_prevent_update_check( $r, $url ) {
    if ( 0 === strpos( $url, 'http://api.wordpress.org/plugins/update-check/' ) ) {
        $my_plugin = plugin_basename( __FILE__ );
        $plugins = unserialize( $r['body']['plugins'] );
        unset( $plugins->plugins[$my_plugin] );
        unset( $plugins->active[array_search( $my_plugin, $plugins->active )] );
        $r['body']['plugins'] = serialize( $plugins );
    }
    return $r;
}

クレジット: http://developersmind.com/2010/06/12/preventing-wordpress-from-checking-for-updates-for-a-plugin/

22
danyo

プラグインの更新を無効にする

プラグインのルートファイルにこのコードを追加します。

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

このコードをテーマのfunctions.phpファイルに入れます。これは私のために働いており、私はそれを使用しています。また、これは特定のプラグイン用です。ここで、プラグインのメインファイルのURLをプラグインのURLと一致するように変更する必要があります。

 function my_filter_plugin_updates( $value ) {
   if( isset( $value->response['facebook-comments-plugin/facebook-comments.php'] ) ) {        
      unset( $value->response['facebook-comments-plugin/facebook-comments.php'] );
    }
    return $value;
 }
 add_filter( 'site_transient_update_plugins', 'my_filter_plugin_updates' );

ここに:

"facebook-comments-plugin" => facebook commentsプラグインフォルダー名

"facebook-comments.php" =>プラグインのメインファイル。これはindex.phpのように異なる場合があります

これが助けになることを願っています。

32
Sumith Harshan

最も簡単で効果的な方法は、更新を取得したくないプラグインのバージョンを変更することです。たとえば、wptouchを更新したくない場合は、次のような定義ファイルを開きます。

/*
    Plugin Name: WPtouch Mobile Plugin
    Plugin URI: http://www.wptouch.com/
    Version: 4.0.4

*/

ここでバージョンの変更で4.0.49999のように:

/*
    Plugin Name: WPtouch Mobile Plugin
    Plugin URI: http://www.wptouch.com/
    Version: 9999

*/
16
add_filter('site_transient_update_plugins', '__return_false');

function.phpで上記のコードを追加し、すべてのプラグインの更新を無効にします

12
victor

Mark Jaquithのスクリプトの更新バージョンは次のとおりです。

  • WPアップデートがHTTPSに切り替わりました
  • 共有ホスティングで非シリアル化がブロックされました
  • 代わりにjson_decodeとjson_encodeを使用します
  • クレジット: Block Plugin Update

add_filter( 'http_request_args', 'widget_disable_update', 10, 2 );

function widget_disable_update( $r, $url ) {
    if ( 0 === strpos( $url, 'https://api.wordpress.org/plugins/update-check/' ) ) {
        $my_plugin = plugin_basename( __FILE__ );
        $plugins = json_decode( $r['body']['plugins'], true );
        unset( $plugins['plugins'][$my_plugin] );
        unset( $plugins['active'][array_search( $my_plugin, $plugins['active'] )] );
        $r['body']['plugins'] = json_encode( $plugins );
    }
    return $r;
}
3
skibulk

プラグインの更新を手動で無効にする:

  1. Functions.phpファイルを開きます(アクティブなテーマフォルダーに移動します)
  2. 次のコードをコピーして貼り付けます。

remove_action( 'load-update-core.php', 'wp_update_plugins' );

add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );

  1. 変更を保存すれば完了です
0
Hemant Ramphul

プラグインの更新を無効にするには、次の行をwp-config.phpに追加します。

define('DISALLOW_FILE_MODS',true);
0

完全を期すために、選択した他のプラグインの更新をブロックするプラグインをもう1つ示します。

https://github.com/daggerhart/lock-plugins

その背景と機能モードに関するいくつかの情報を見つけることができます こちら (ドイツ語)。

0
tanius