为我的主题制作更新通知功能


17

问题很简单:)我正在制作一个主题,并将在许多站点中使用。因此,我不想在每次修复错误或进行主题升级时都访问所有站点并通过ftp传输文件。

有什么办法可以使更新系统像wordpress插件目录中托管的插件一样。

期待您的回答。谢谢!

解决了:

感谢Chip Bennett的出色链接。现在可以在该站点上使用主题的更新库。您可以在这里找到它:http : //w-shadow.com/blog/2011/06/02/automatic-updates-for-commercial-themes/

如果您看到免费提供的一些出色作品,请务必考虑捐赠。


使用插件更新检查器!适用于插件和主题。github.com/YahnisElsts/plugin-update-checker
transbetacism

Answers:


9

您还可以加入核心更新例程。(我正在寻找教程链接,但今天早上我的Google-fu失败了。)

编辑:

看看本教程是否有帮助。它说明了如何为私有/商业(即非存储库托管)插件实现自动升级。


1
我认为是pre_set_site_transient_update_plugins
Wyck

谢谢!我通过您的链接访问了插件代码,但插件代码无法正常工作,但几天后,我要求该人修改主题库,他制作了一个!现在,它的工作很棒!我将链接放在我的问题中。谢谢!!
西西尔(Sisir)

1
这里是教程来自同一个站点的主题也是自动升级:w-shadow.com/blog/2011/06/02/...
雅罗斯拉夫Klimčík

pre_set_site_transient_update_plugins在主站点上仅运行激活的主题。即使是多站点并在其他站点上激活了其他自定义主题,也不会检查所有其他自定义主题更新。
否2016年

3

有兴趣的问题!实际上,我认为您应该提供一项检查更新的服务!例如yourdomain.comn / api / update-check!然后,这可以返回XML或JSON或一些与更新有关的有用信息,例如版本,更新文件的url(更新的文件应为zip文件)!

在您的主题中,您可以:

    <?php define('OWN_THEME_VERSION', '1.1');

因此,当您从url(yourdomain.comn / api / update-check)上方检测到更新时,假定它返回的JSO数据如下:{“ version”:“ 1.2”,“ file”:“ theme.zip”}

您比较版本以检查新的更新!然后使用此功能http://codex.wordpress.org/Function_Reference/switch_theme切换到默认主题(当用户访问该站点时,他们会看到一个混乱的站点)!接下来,您的代码可以使用curl甚至file_get_contents下载zip文件(在这种情况下为theme.zip)!接下来,您删除主题文件夹中的所有文件,然后提取zip文件并将其内容复制到主题文件夹中!我认为这种方式应该有效!

您可能想看看WordPress做了什么!我发现它在文件wp-admin / includes / update-core.php中,第288行,函数update_core


3
基本上是这样,但不是使用curl或file_get而是使用WordPress HTTP API,而是
Wyck

酷威克,我不知道;)!
kureikain 2011年

1
终于有时间开始研究了!对于主题的当前版本,我可以使用此功能codex.wordpress.org/Function_Reference/get_theme_data。我将开始使用您指定的方法。
西西尔(Sisir)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.