有時(shí)候 WordPress插件開(kāi)發(fā)者會(huì)對(duì)插件進(jìn)行比較大的版本更新,這些更新可能是不兼容以前版本的。這時(shí)候,我們需要提醒插件用戶注意這些更新,在插件列表界面添加一個(gè)明顯的更新提示會(huì)幫助用戶更方便的了解我們的插件更新。WordPress 4.3 以前的版本是支持直接顯示插件 readme.txt 文件中的“Upgrade Notice”信息的,不知道什么原因,最近兩個(gè)版本的 WordPress 去掉了插件更新提示的支持。在插件列表中的更新提示的效果可以參考下圖。
插件 readme.txt 里面的更新提示示例
在下面的代碼中?## Upgrade Notice ## 是更新提醒的文檔標(biāo)題,不要修改,### 1.8 ### 是新版的版本號(hào),版本號(hào)下面的文字是 WordPress插件列表頁(yè)面顯示的更新提示。下面的更新提示代碼片段是我為?Wizhi Multi Filter 插件?添加的更新提示。
## Upgrade Notice ## ### 1.8 ### 此版本將棄用直接使用類新建多條件查詢的方法,更新前請(qǐng)先檢查自己的主題。 ### 1.7 ### 新版本需要 PHP 5.4 以上的版本才能正常運(yùn)行,如果PHP版本低于5.4,請(qǐng)不要更新此版本,否則將使您的站點(diǎn)出現(xiàn)致命錯(cuò)誤而不可訪問(wèn)。
添加并顯示版本更新提示到插件列表頁(yè)面
雖然 WordPress 內(nèi)核目前去掉了直接顯示”Upgrade Notice” 的功能,我們還是可以通過(guò)一個(gè) API 在我們的插件中加入這個(gè)功能的,這個(gè)動(dòng)作鉤子的名稱是:in_plugin_update_message-{$plugin_main_file},$plugin_main_file?是插件的主文件。具體顯示信息的方法看一下下面的代碼就明白了。
// 添加插件更新提示
add_action('in_plugin_update_message-wizhi-multi-filters/wizhi-multi-filter.php', 'showUpgradeNotification', 10, 2);
function showUpgradeNotification($currentPluginMetadata, $newPluginMetadata){
// 檢查 "upgrade_notice" 數(shù)據(jù)并顯示
if (isset($newPluginMetadata->upgrade_notice) && strlen(trim($newPluginMetadata->upgrade_notice)) > 0){
echo '<p style="background-color: #d54e21; padding: 10px; color: #f9f9f9; margin-top: 10px"><strong>Important Upgrade Notice:</strong> ';
echo esc_html($newPluginMetadata->upgrade_notice), '</p>';
}
}
總結(jié)
需要注意的是,上面代碼中的 $newPluginMetadata 是從 WordPress插件倉(cāng)庫(kù)里面直接讀取的,而不是已經(jīng)安裝的插件里面的數(shù)據(jù),所以,我們至少要更新兩個(gè)版本才能看到上面的提示:一個(gè)是舊版插件,一個(gè)是包含更新提示的新版插件。
插件更新提示是一個(gè)很重要的特性,很奇怪 WordPress 官方的開(kāi)發(fā)文檔中并沒(méi)有提到這個(gè)功能,并且在最近的兩個(gè)版本中,這個(gè)特性也隱藏得更深了,希望這個(gè)功能盡早回到 WordPress 內(nèi)核中,到時(shí)候,上面介紹的方法就可以棄用了。



