マイ・プラグインの更新を非表示にする

マイ・プラグインの更新を非表示
自分専用のマイ・プラグインを作ってみませんか」とおすすめしましたが、これは 「WordPressプラグインディレクトリ」に登録するのではなく、自分のサイト環境にあわせたPHPのコードを入れる為のプラグインです。

プラグイン名(my-plugin)は、自由につけてもいいのですが、もし 誰かが同名のプラグインを「WordPressプラグインディレクトリ」に登録してしまうと、管理画面で「更新」表示が出てしまいます。
うっかり更新すると 全然違うプラグインに入れ替わってしまいます。

プラグインの更新通知のサンプル

※これは合成画像です。

そこで「my-plugin」だけ更新を非表示するコードを紹介します。
今の所「my-plugin」は「WordPressプラグインディレクトリ」には無いので大丈夫ですが 念のため入れておいた方がいいでしょう。

 

my-plugin の更新を非表示

以下のコードを my-plugin.php に張り付けてください。

/*
 * my-pluginの更新を非表示
 *
 * License: GPLv2 or later
 */
function nendebcom_hide_myplugin_updateplugin( $data ) {
	if ( isset( $data->response['my-plugin/my-plugin.php'] ) ) {
		unset( $data->response['my-plugin/my-plugin.php'] );
	}
	return $data;
}
add_filter( 'site_option__site_transient_update_plugins', 'nendebcom_hide_myplugin_updateplugin' );

※[‘my-plugin/my-plugin.php’]」の所が [‘フォルダ名/ファイル名’] になってますので変更している場合はあわせてください。
※my-pluginを停止すると更新通知が出てきます(プラグインディレクトリに載った場合)ので注意してください。
※他にも更新してほしくないプラグインがあれば if( isset~){ ~~ } までをコピーして追記してください。
※Jetpackの「自動更新(プラグインを常に自動で更新)」に設定していてもこのコードのおかげで自動更新されませんでした。

 



 

テーマの更新を非表示

ついでにテーマの更新も非表示にしたい場合は 以下のコードを my-plugin.php に張り付けてください。

/*
 * テーマの更新を非表示
 *
 * License: GPLv2 or later
 */
remove_action( 'load-update-core.php', 'wp_update_themes' );
add_filter( 'pre_site_transient_update_themes', create_function( '$a', "return null;" ) );
//wp_clear_scheduled_hook( 'wp_update_themes' );

※wp_clear_scheduled_hookのところは、wp-cronまで止めたい場合はコメントアウトを外してください。

参考

WordPressプラグインディレクトリ
https://ja.wordpress.org/plugins/