WordPress 5.6引入了一個新的UI界面,允許網(wǎng)站管理員選擇加入主要版本的自動更新。
什么是主要版本和次要版本?
簡單來說,主要版本是指大版本,比如 4.9、5.0、5.1、5.2 ……
而次要版本是指某個主要版本的小版本,比如 4.9.x 就稱之為 4.9 的次要版本。
默認(rèn)情況下,在WordPress 5.5 以及更早的版本中,如果你的WordPress允許自動更新,假如你安裝的是 5.5 主要版本,然后系統(tǒng)就會自動更新它的次要版本,比如 5.5.3 發(fā)布的時候,你的網(wǎng)站就可以自動更新該版本。
但是,如果發(fā)布了 5.6 版本,你的網(wǎng)站并不會自動更新到該版本,而需要你在“更新”界面點擊進(jìn)行更新。
從 WordPress 5.6 開始,在 儀表盤 – 更新 界面,新增了一個選項,勾選后就可以允許網(wǎng)站從 5.5.x 自動更新到 5.6。
次要版本的自動更新一般是修補(bǔ)程序,對網(wǎng)站基本不會有什么不利影響,所以強(qiáng)制建議自動更新次要版本,保證網(wǎng)站的安全!
但是主要版本一般都會帶有新功能的植入,可能會對核心做大調(diào)整,對現(xiàn)有網(wǎng)站的主題、插件可能存在兼容性問題,所以,我們不推薦開啟自動更新主要版本,以避免對網(wǎng)站造成較大的問題。但是我們可以在本地開發(fā)環(huán)境或測試環(huán)境中去先升級測試新的主要版本是否和現(xiàn)有網(wǎng)站的主題、插件兼容,如果兼容,就在線上網(wǎng)站進(jìn)行更新,否則不更新!
什么是核心自動更新?
WordPress的核心自動更新功能已經(jīng)存在多年。WP 5.6僅引入了新的用戶界面,以使加入主要版本的自動更新變得更容易。
默認(rèn)情況下,WordPress會自動更新自身,但僅適用于次要版本。通過將現(xiàn)有WP_AUTO_UPDATE_CORE常量設(shè)置為true或使用allow_major_auto_core_updates過濾器,開發(fā)人員已經(jīng)可以選擇加入主要版本的自動更新。
使用WordPress 5.6,網(wǎng)站管理員可以使用位于“更新”屏幕上的特定界面來選擇加入/退出對主要版本的自動更新:
它是如何工作的?
此設(shè)置部分簡單地添加了一個復(fù)選框,以允許管理員選擇加入主要版本的核心自動更新。但是,它還會使用以下順序檢查是否存在任何現(xiàn)有的常量或過濾器,以查看默認(rèn)情況下是否應(yīng)選中此復(fù)選框:
- 默認(rèn)情況下,未選中該復(fù)選框。
- 如果
get_site_option( 'auto_update_core_major' )返回true,則選中該復(fù)選框。否則未選中。復(fù)選框值更改時,此選項是存儲在數(shù)據(jù)庫中的選項。 - 如果
WP_AUTO_UPDATE_CORE常量返回true,beta或者rc,該復(fù)選框被選中。如果常量返回false,minor或者未定義,則未選中該復(fù)選框。如果設(shè)置了此常數(shù),它將覆蓋以上參數(shù)。 - 如果
allow_major_auto_core_updates過濾鉤子返回true,則選中該復(fù)選框。如果過濾器返回false或未使用,則未選中該復(fù)選框。如果使用此過濾器,它將覆蓋以上參數(shù)。
要默認(rèn)禁用該復(fù)選框,開發(fā)人員可以將WP_AUTO_UPDATE_CORE設(shè)置為false(禁用所有自動更新)或minor(僅啟用次要內(nèi)核自動更新,這是默認(rèn)行為)。必須使用wp-config.php文件來完成。
開發(fā)人員可以選擇使用allow_major_auto_core_updates過濾器,將核心主要版本默認(rèn)設(shè)置為自動更新為true或false。例:
add_filter( 'allow_major_auto_core_updates', '_return_false' );
如何擴(kuò)展核心主要版本的自動更新功能?
該功能還檢查dev(WordPress的開發(fā)版本)和minor更新。在該設(shè)置部分的“提交”按鈕之前,有一個動作掛鉤正在運行,以在需要時添加一些選項。使用after_core_auto_updates_settings_fields動作掛鉤,開發(fā)人員可以添加其他設(shè)置或文本。
例如,以下代碼段添加了選擇加入/退出次要版本自動更新的選項:
function my_plugin_after_core_auto_updates_settings_fields( $auto_update_settings ) {
if ( isset( $_POST['core-auto-updates-settings'] ) && wp_verify_nonce( $_POST['set_core_auto_updates_settings'], 'core-auto-updates-nonce' ) ) {
if ( isset( $_POST['my-plugin-core-auto-updates-minor'] ) && 1 === (int) $_POST['my-plugin-core-auto-updates-minor'] ) {
update_site_option( 'my_plugin_auto_update_core_minor', 1 );
} else {
update_site_option( 'my_plugin_auto_update_core_minor', 0 );
}
}
$minor_auto_updates_settings = get_site_option( 'my_plugin_auto_update_core_minor' );
?>
<p>
<input type="checkbox" name="my-plugin-core-auto-updates-minor" id="my-plugin-core-auto-updates-minor" value="1" <?php checked( $minor_auto_updates_settings, 1 ); ?> />
<label for="my-plugin-core-auto-updates-minor">
<?php _e( 'Automatically keep this site up-to-date with minor updates.', 'my-plugin' ); ?>
</label>
</p>
<?php
}
add_action( 'after_core_auto_updates_settings_fields', 'my_plugin_after_core_auto_updates_settings_fields', 10, 1 );
此代碼段在主要發(fā)行版選項之后添加了一個新選項:






