本页目录
WordPress 插件的自定义更新检查器。如果您不想将项目托管在正式的 WP 存储库中,但仍然希望它支持自动更新,则很有用。尽管名称,它也适用于主题。
GitHub: https://GitHub.com/YahnisElsts/plugin-update-checker
插件更新检查器
这是针对 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的库。
如何发布更新
更改 versionJSON 文件中的数字,并确保其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 上的最新版本)。
- 本地插件头(即当前安装的版本)。
- 的“说明”部分
- 评分,横幅,屏幕截图
- 不支持。