以前小編在幫可以開發 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()

這個函數對你的主題有安裝和卸載功能的,在安裝和卸載的代碼時候可以調用下。

2015-02-23T16:14:24+08:00發表於:2015-02-23|WordPress|