WordPress插件的自定義更新檢查器。如果您不想將項目托管在正式的WP存儲庫中,但仍然希望它支持自動更新,則很有用。盡管名稱,它也適用于主題。
Github: https://github.com/YahnisElsts/plugin-update-checker
本站下載:
[zrz_file link="https://cdn.getimg.net/npc/2019/wordpress/plugin/plugin-update-checker-4.8.1.zip" name="plugin-update-checker-4.8.1.zip" code=""]插件更新檢查器
這是針對WordPress插件和主題的自定義更新檢查器庫。它使您可以將自動更新通知和一鍵式升級添加到商業插件,私有主題等。您需要做的就是將插件/主題詳細信息放在JSON文件中,將文件放在服務器上,然后將URL傳遞給庫。該庫會定期檢查URL,以查看是否有可用的新版本,并在必要時向用戶顯示更新通知。
從用戶的角度來看,它就像在WordPress.org上托管的插件和主題一樣工作。更新檢查器使用大多數WordPress用戶熟悉的默認升級UI。
- GitHub整合
- BitBucket集成
- GitLab集成
入門
自托管插件和主題
- 下載最新版本并將
plugin-update-checker
目錄復制到您的插件或主題。 - 轉到
examples
子目錄,然后打開適合您的項目類型的.json文件。用您的插件/主題詳細信息替換占位符數據。- 插件示例:
{
"name" : "Plugin Name",
"version" : "2.0",
"download_url" : "http://example.com/plugin-name-2.0.zip",
"sections" : {
"description" : "Plugin description here. You can use HTML."
}
}
- 這是一個最小的示例,其中省略了可選字段。有關受支持字段及其說明的完整列表,請參見此表。
- 主題示例:
{
"version": "2.0",
"details_url": "http://example.com/version-2.0-details.html",
"download_url": "http://example.com/example-theme-2.0.zip"
}
- 這實際上是一個完整的示例,其中顯示了所有與主題相關的字段。
version
并且download_url
應該是不言自明的。該details_url
鍵指定頁面,用戶將看到,如果他們點擊“查看版本1.2.3的詳細信息”鏈接的更新通知。
require 'path/to/plugin-update-checker/plugin-update-checker.php';
$myUpdateChecker = Puc_v4_Factory::buildUpdateChecker(
'http://example.com/path/to/details.json',
__FILE__, //Full path to the main plugin file or functions.php.
'unique-plugin-or-theme-slug'
);
- 注意:如果您使用的是Composer自動加載器,則不需要顯式
require
的庫。
如何發布更新
更改version
JSON文件中的數字,并確保其download_url
指向最新版本。如有必要,請更新其他字段。提示:您可以使用wp-update-server自動執行此過程。
默認情況下,庫將每12小時檢查一次指定的URL是否有更改。您可以通過單擊“插件”頁面上的“檢查更新”鏈接(位于“訪問插件站點”鏈接旁邊)來強制其立即進行檢查。主題沒有該鏈接,但是您也可以像這樣觸發更新檢查:
- 安裝調試欄。
- 點擊管理欄(又稱工具欄)中的“調試”菜單。
- 打開“ PUC(您的子彈)”面板。
- 點擊“立即檢查”按鈕。
筆記
- 傳遞給第二個參數
buildUpdateChecker
必須是主插件文件或主題目錄中任何文件的絕對路徑。如果遵循“入門”說明,則可以只使用__FILE__
常量。 - 第三個參數(即段塞)是可選的,但建議使用。在大多數情況下,該段應該與您的插件目錄的名稱相同。例如,如果您的插件位于其中
/wp-content/plugins/my-plugin
,請將slug設置為my-plugin
。如果忽略該段,更新檢查器將使用主插件文件的名稱作為段(例如my-cool-plugin.php
→?my-cool-plugin
)。如果您的插件的通用文件名為,則可能導致沖突plugin.php
。這不會影響主題,因為PUC使用主題目錄名稱作為默認標記。但是,如果您打算在自己的代碼中使用該段代碼(例如,過濾更新或覆蓋更新檢查器行為),則最好進行顯式設置。
許可證管理
當前,更新檢查器沒有任何內置的許可證管理功能。它僅提供了一些掛鉤,您可以使用這些掛鉤,例如,添加許可證密鑰以更新請求($updateChecker->addQueryArgFilter()
)。如果您正在尋找管理和驗證許可證的方法,請在此問題中發表您的反饋。
GitHub整合
- 下載最新版本并將
plugin-update-checker
目錄復制到您的插件或主題。 - 將以下代碼添加到主插件文件或
functions.php
:
require 'plugin-update-checker/plugin-update-checker.php';
$myUpdateChecker = Puc_v4_Factory::buildUpdateChecker(
'https://github.com/user-name/repo-name/',
__FILE__,
'unique-plugin-or-theme-slug'
);
//Optional: If you're using a private repository, specify the access token like this:
$myUpdateChecker->setAuthentication('your-token-here');
//Optional: Set the branch that contains the stable release.
$myUpdateChecker->setBranch('stable-branch-name');
- 僅插件:將
readme.txt
根據WordPress.org插件自述文件標準格式化的文件添加到您的存儲庫。當用戶單擊“查看版本1.2.3詳細信息”鏈接時,將顯示此文件的內容。
如何發布更新
該庫支持幾種不同的方法來在GitHub上發布更新。選擇最適合您的工作流程的一種。
- GitHub版本使用GitHub上的“發布”功能創建新版本。標簽名稱和發行標題無關緊要。該描述是可選的,但如果您提供了描述,則當用戶單擊“插件”頁面上的“查看版本xyz詳細信息”鏈接時,將顯示該描述。請注意,PUC會忽略標記為“這是預發行版本”的發行版本。如果要使用發布資產,請
enableReleaseAssets()
在創建更新檢查器實例后調用該方法:
$myUpdateChecker->getVcsApi()->enableReleaseAssets();
- 標簽要發布1.2.3版,請創建一個名為
v1.2.3
或的新Git標簽1.2.3
。而已。PUC不需要嚴格遵守SemVer。這些都是有效的標簽名稱:v1.2.3
,v1.2-foo
,1.2.3_rc1-ABC
,1.2.3.4.5
。但是,請注意,它不足以過濾掉alpha / beta / RC版本。如果這是一個問題,你可能需要使用GitHub的版本或分支代替。 - 穩定的分支將更新檢查器指向穩定的生產就緒分支:
$updateChecker->setBranch('branch-name');
- PUC將定期檢查
Version
主插件文件中的標頭,或者style.css
如果它大于已安裝的版本,則顯示通知。注意:如果將分支設置為master
(默認值),更新檢查器將首先查找最新版本和標簽。master
如果找不到其他合適的分支,它將僅使用分支。
筆記
該庫將從發布/標簽/分支的以下部分提取更新詳細信息:
- 版本號
- “版本”插件標頭。
- 最新的GitHub版本或標簽名稱。
- 變更日志
- 的“更改日志”部分
readme.txt
。 - 以下文件之一:CHANGES.md,CHANGELOG.md,changes.md,changelog.md
- GitHub發行說明。
- 的“更改日志”部分
- 必需和經過測試的WordPress版本
- 中的“至少需要”和“經過測試”字段
readme.txt
。 - 以下插件頭:?
Required WP
,Tested WP
,Requires at least
,Tested up to
- 中的“至少需要”和“經過測試”字段
- “最新更新”時間戳
- 最新GitHub版本的創建時間戳。
- 所選標簽或分支中的最新提交。
- 下載次數
download_count
最新版本的統計信息。- 如果您不使用GitHub版本,則不會有下載統計信息。
- 其他插件詳細信息-作者,首頁URL,描述
- 的“說明”部分
readme.txt
。 - 遠程插件頭(即GitHub上的最新版本)。
- 本地插件頭(即當前安裝的版本)。
- 的“說明”部分
- 評分,橫幅,屏幕截圖
- 不支持。