插件更新检查器

给Wordpress增添更新功能

WordPress插件的自定义更新检查器。如果您不想将项目托管在正式的WP存储库中,但仍然希望它支持自动更新,则很有用。尽管名称,它也适用于主题。

Github: https://github.com/YahnisElsts/plugin-update-checker

本站下载:

隐藏内容,您需要满足以下条件方可查看

私人和商业插件的自动更新

通过几步简单的操作,为你开发的Wordpress 主题和插件添加自动更新功能

插件更新检查器

这是针对WordPress插件和主题的自定义更新检查器库。它使您可以将自动更新通知和一键式升级添加到商业插件,私有主题等。您需要做的就是将插件/主题详细信息放在JSON文件中,将文件放在服务器上,然后将URL传递给库。该库会定期检查URL,以查看是否有可用的新版本,并在必要时向用户显示更新通知。

从用户的角度来看,它就像在WordPress.org上托管的插件和主题一样工作。更新检查器使用大多数WordPress用户熟悉的默认升级UI。

  • GitHub整合
  • BitBucket集成
  • GitLab集成

入门

自托管插件和主题

  1. 下载最新版本并将plugin-update-checker目录复制到您的插件或主题。
  2. 转到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'
);
  1. 注意:如果您使用的是Composer自动加载器,则不需要显式require的库。

如何发布更新

更改versionJSON文件中的数字,并确保其download_url指向最新版本。如有必要,请更新其他字段。提示:您可以使用wp-update-server自动执行此过程。

默认情况下,库将每12小时检查一次指定的URL是否有更改。您可以通过单击“插件”页面上的“检查更新”链接(位于“访问插件站点”链接旁边)来强制其立即进行检查。主题没有该链接,但是您也可以像这样触发更新检查:

  1. 安装调试栏
  2. 点击管理栏(又称工具栏)中的“调试”菜单。
  3. 打开“ PUC(您的子弹)”面板。
  4. 点击“立即检查”按钮。

笔记

  • 传递给第二个参数buildUpdateChecker必须是主插件文件或主题目录中任何文件的绝对路径。如果遵循“入门”说明,则可以只使用__FILE__常量。
  • 第三个参数(即段塞)是可选的,但建议使用。在大多数情况下,该段应该与您的插件目录的名称相同。例如,如果您的插件位于其中/wp-content/plugins/my-plugin,请将slug设置为my-plugin。如果忽略该段,更新检查器将使用主插件文件的名称作为段(例如my-cool-plugin.php→ my-cool-plugin)。如果您的插件的通用文件名为,则可能导致冲突plugin.php。这不会影响主题,因为PUC使用主题目录名称作为默认标记。但是,如果您打算在自己的代码中使用该段代码(例如,过滤更新或覆盖更新检查器行为),则最好进行显式设置。

许可证管理

当前,更新检查器没有任何内置的许可证管理功能。它仅提供了一些挂钩,您可以使用这些挂钩,例如,添加许可证密钥以更新请求($updateChecker->addQueryArgFilter())。如果您正在寻找管理和验证许可证的方法,请在此问题中发表您的反馈。

GitHub整合

  1. 下载最新版本并将plugin-update-checker目录复制到您的插件或主题。
  2. 将以下代码添加到主插件文件或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');
  1. 仅插件:将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.3v1.2-foo1.2.3_rc1-ABC1.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 WPTested WPRequires at leastTested up to
  • “最新更新”时间戳
    • 最新GitHub版本的创建时间戳。
    • 所选标签或分支中的最新提交。
  • 下载次数
    • download_count最新版本的统计信息。
    • 如果您不使用GitHub版本,则不会有下载统计信息。
  • 其他插件详细信息-作者,首页URL,描述
    • 的“说明”部分readme.txt
    • 远程插件头(即GitHub上的最新版本)。
    • 本地插件头(即当前安装的版本)。
  • 评分,横幅,屏幕截图
    • 不支持。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新消息 消息中心
有新私信 私信列表
搜索