【解決?】WordPressのプラグイン更新を自動化する(プラグイン不使用)

本ページにはプロモーションが含まれています。
WordPress

「add_filter」で「auto_update_plugin」を「__return_true」にしても自動更新されないよ・・・

という時の対処法です。

[adsense]

WPプラグインのアップデートを自動更新にする方法

早速、結論です。

mu-plugins/mu-config.phpに以下の記述をする

>mu-pluginsフォルダについてはこちらの記事で解説しています。

mu-pluginsについてまとめると、

・wp-contentフォルダに、mu-pluginsフォルダを作成する
・mu-pluginsフォルダに、phpファイルを作成する(ファイル名は何でもOK。例えばmu-config.php。)

です。

add_filter( 'automatic_updater_disabled', '__return_false' );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

ポイントは、1行目です。
2行目がプラグイン更新の自動化、3行目がテーマファイル更新の自動化設定です。

もしこれで1日程度経っても更新されない場合は、mu-pluginsフォルダと、mu-config.phpファイルのパーミッションを変更してみてください。

>パーミッションの変更方法はこちらで解説しています。(FileZilla版)

参考情報というか調べたメモ

上記1行目を書かない状態でプラグインとテーマの自動更新のための設定をしていた(2,3行目)のですが、プラグイン、テーマの更新が自動実行されずに溜まっていくばかりだったので、調べてみました。

「auto_update_plugin」の定義場所

そもそも、このfilter「auto_update_plugin」はどこにあるのか、から調査開始。

ググって最初に見つけたサイトがここです。

auto_update_{$type} WordPress hook details — Adam Brown, BYU Political Science

WordPressのバージョン4.4までは、「wp-admin/includes/class-wp-upgrader.php」にある、と書いてありますが、現在のWPは4.9。class-wp-upgrader.phpファイルはあったのですが、「auto_update_」filterはありませんでした。

さらに調べたところ、こちらのサイトにたどりつきました。
wp-admin/includes/class-wp-automatic-updater.php | WordPress Developer Resources

サイトタイトルのとおり、「wp-admin/includes/class-wp-automatic-updater.php」にありました。

これでとりあえず、「auto_update_plugin」filterがいつの間にか無くなっていて、そもそも使えないじゃないか、という事態は回避できたので、ちょっと安心。(ちなみに2017年頃の英語掲示板で、「4時間かけて探したけど見つからない、いつFireされたんだ。。。」という書き込みがあり、Fire説が頭から離れてませんでした。)

class-wp-automatic-updater.phpの中身を確認する

175行目あたりに

$update = apply_filters( "auto_update_{$type}", $update, $item );

がありますので、ここが実行されていないとしたら、その前でExitしているのだろうと思い、上を見ていくと、それっぽいところを発見。

if ( $this->is_disabled() )
return false;

ということで、is_dislabled()を見てみると、

$disabled = defined( 'AUTOMATIC_UPDATER_DISABLED' ) && AUTOMATIC_UPDATER_DISABLED;
return apply_filters( 'automatic_updater_disabled', $disabled );

とあります。

これはつまり、「automatic_updater_disabled」が「true」なら「auto_update_plugin」は実行されない、ということ(なんだろうなと思った)。

コメント

タイトルとURLをコピーしました