はじめに
こちらの記事でWordPressのデータ移行を記したが、その中の1サイトでデータ移行後にWordPressの自動更新によって本番環境の一部ファイルが書き換わる障害が発生した
その教訓としてWordPressの自動更新を制御する方法を記す
障害の詳細
経緯
- 移行元はWordPressがインストールされておらず、別途静的ファイルのみでサイトを構築していた
- 移行先のサイトではWordPressがインストールされていたが、初期設定のままで放置されていた(諸事情によりアンインストールはしない)
- 移行時に、静的ファイルの
index.php
がWordPressインストール時のindex.php
の同名であったため上書き保存した
発生時
- しばらくしてWordPressの自動更新が実行された
- 他のファイルについては影響がなかったが、
index.php
についてはWordPress初期のコードに上書きされてしまったしまった - 結果、サイトのトップページがWordPress初期表示になってしまった
各対応方法
function.phpでの制御
function.php
で以下のフィルターフックを追加すると、WordPressバージョンチェックの際に新しいバージョンがないと認識させることができる
バージョン通知を無効化
add_filter( 'pre_site_transient_update_core', '__return_zero' );
これにより、管理画面で新しいバージョン通知が表示されなくなる
コアバージョンの定期チェックを無効化
remove_action( 'wp_version_check', 'wp_version_check' );
WordPressが定期的に行うコアバージョンチェックを停止できる
wp-config.phpでの制御
wp-config.php
に以下の記述を追加することで、自動更新を制御できる
自動更新を完全に停止
define('WP_AUTO_UPDATE_CORE', 'false');
マイナーアップデートのみを自動更新する
define('WP_AUTO_UPDATE_CORE', 'minor');
WP Downgradeプラグイン
「WP Downgrade | Specific Core Version」プラグインを使用すると、WordPressのバージョンを指定したバージョンにアップグレードまたは、ダウングレードできる
バージョンアップ・ダウングレード手順
- プラグイン > 新規追加 から「WP Downgrade | Specific Core Version」をインストールして有効化する
- 設定 > WP Downgrade で「
WordPress Target Version
」に指定したいバージョンを入力し、「変更を保存」をクリック - WordPressの更新画面に移動し、「再インストール」をクリックしてバージョンを切り替える
注意事項
- 実行前にバックアップを取ること推奨(特にダウングレード時)
まとめ
特に利用しなくても、WordPressの設定はちゃんと確認しよう