wordpress自己帶有一個自動升級的功能,也就是說,如果wp檢測到官方已經有新的升級可用的話他就會自己升級上去。這可能對於某些場合是個不錯的功能,但是對於一些已經對系統大量魔改或者對插件穩定性不抱有特別大的信心的場合來說這有時無疑是致命的,對於一些 禁止文件寫入或容器重啟后文件全部丟失的容器 (比如openshift)來說,它的升級也幾乎沒有什么作用,也會對系統造成一些不穩定因素,所以說這種場合我們需要關閉Wordpress的自動升級來保證站點運行的穩定
如何關閉自動升級功能?
對於關閉自動升級的方案有很多方案可以選擇,幾經搜索我找到了一個 通過卸載相應hook 來達到目的的方法,代碼如下
define( 'AUTOMATIC_UPDATER_DISABLED', true ); //禁用自動更新
add_filter('pre_site_transient_update_core', 'fake_update_callback'); // 關閉核心提示
add_filter('pre_site_transient_update_plugins', 'fake_update_callback'); // 關閉插件提示
add_filter('pre_site_transient_update_themes', 'fake_update_callback'); // 關閉主題提示
remove_action('admin_init', '_maybe_update_core'); // 禁止 WordPress 檢查更新
remove_action('admin_init', '_maybe_update_plugins'); // 禁止 WordPress 更新插件
remove_action('admin_init', '_maybe_update_themes'); // 禁止 WordPress 更新主題
按照那篇文章的說法,將這些加入你用的主題的 function.php 中即可達到目的,但是這樣多多少少會略顯不便。所以我寫了一個插件來達到此目的
插件: wp-disable-update
這個插件需要在 wp-config.php 中設置常量 UPDATER_DISABLE 的值為 true 才可以動作 ,在這步可以在 wp-config.php 中加入邏輯來達到控制是否禁用的功能。比如我在里面加入了判斷域名是否為測試環境的邏輯,這樣就可以達到在測試環境中升級、在生產環境完全關掉升級的目的。
