以前小編在幫可以開發 WordPress 主題的時候經常會遇到客戶問主題什麼時候會更新、升級。其實小編最頭痛這類問題了,因為小編也不知道什麼時候會更新主題,而且也不好叫客戶即時關注主題的更新動態所以小編一時也回答不上。想讓 WordPress 自動提示主題有更新吧,又要把主題提交到 WordPress 官網才可以實現線上提示更新的功能,但是收費主題又不好直接提交到 WordPress 官網,前一陣子看到老外寫的一篇文章:Automatic Updates For Private And Commercial Themes 說的就是如何為商業 WordPress 模板新增一個線上升級與版本更新提示。
一、建立一個帶有 WordPress 主題版本資訊的 info.json 檔案並放入主題根目錄:
{
"version" : "2.0",
"details_url" : "https://www.weixiaoduo.com/wpjiaocheng/201310314.html",
"download_url" : "https://www.weixiaoduo.com/wpjiaocheng/201310314.zip"
}
二、在網站根目錄下新建一個 themes-updates.json 檔案:
{
"version" : "2.0",
"details_url" : "https://www.weixiaoduo.com/wpjiaocheng/201310314.html",
"download_url" : "https://www.weixiaoduo.com/wpjiaocheng/201310314.zip"
}
引數說明下:
version:後面的那個 2.0 就是你主題的版本,比如你第一次釋出出去的時候你可以寫為 1.0; details_url:後面的引數就是你現在這個主題的詳細頁面,一般你釋出主題的時候都是有個詳細的頁面來介紹這個主題吧?那就填那個主題詳細頁的 URL 地址; download_url: 後面的引數就是你釋出主題下載的那個連結地址,也就是說使用者要是能找你這個地址的話,直接複製到瀏覽器就可以下載,這個引數是可選的,你可以留空,不過要 是留空的話就不能增加類似官網的那個點選之後自動更新的功能了。你每次有新的功能更新的話只需要修改 version 後面的引數後,使用你主題的使用者就可以 看到新的提醒了。
三、給你的主題新增遠端檢測是否有新版本釋出的功能
將下載的檔案解壓,把裡面的 theme-updates 資料夾放到主題根目錄,然後給主題檔案 functions.php 新增以下程式碼:
//初始化更新檢測.
require 'theme-updates/theme-update-checker.php';
$example_update_checker = new ThemeUpdateChecker(
'example-theme',
'https://www.weixiaoduo.com/themes-updates.json'
);
說明下: example-theme 主題的名稱,也就是在主題資料夾 (/wp-content/themes) 下面的名字,比如安裝你主題後的檔案路徑是/wp-content /themes/my-theme/,那麼,第一個引數就不再是 xample-theme 而是 my-theme 了。
到此,你的主題就支援自動更新的功能了,只要使用者在使用你的主題,系統就會沒 12 小時自動檢查一次的。
補充: 大概的說下 theme-update-checker.php 類
1. 初始化函式:__construct(『主題名字』,' 主題引數的 URL 地址』,' 是否自動更新,預設是』)
2. 檢測是否有更新的函式的函式:checkForUpdates()
這個可以手動的呼叫
3. 從主題引數的 URL 地址獲取主題的資訊:requestUpdate()
4. 刪除主題儲存資訊:deleteStoredData()
這個函式對你的主題有安裝和解除安裝功能的,在安裝和解除安裝的程式碼時候可以呼叫下。