如果我编写了一个私有插件,是否可以使用WordPress自动更新机制来对其进行更新?

我想封装该功能,但这是针对我自己的大约5个博客的,因此它不是公共插件资源的理想选择。但是我喜欢这种易于更新的机制。

有办法做到吗?

评论

我相信这是wp-hackers邮件列表上讨论的可过滤选项。从来没有解决过,IIRC。我认为相关讨论在此线程中:lists.automattic.com/pipermail/wp-hackers/2009-February / ... ...但我可能是错的。

如果您不想推出自己的解决方案,则可以使用kernl.us进行托管插件更新。

#1 楼

看起来适用的代码在wp-includes/update.phpwp_update_plugins()中:

$to_send = (object) compact('plugins', 'active');

$options = array(
    'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3), 
    'body' => array( 'plugins' => serialize( $to_send ) ),
    'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
);  

$raw_response = wp_remote_post('http://api.wordpress.org/plugins/update-check/1.0/', $options);


它专门检查api.wordpress.org。从技术上讲,可以在$to_send内部传递密钥来委托支票,但据我所知,这不是受支持的功能。变量。当您运行插件更新程序时,这些值似乎将受到信任。请参阅set_site_transient_update_pluginswp-admin/update.php。鉴于这两个函数中的代码,我认为可以注入自己的更新服务器,您只需要查看软件包详细信息的格式并与之匹配即可。

#2 楼

该插件为您完成:


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

自古以来,只有官方WordPress.org插件目录中托管的插件才具有支持的自动更新。现在,我已经编写了一个PHP库,您可以使用该库向任何插件添加自动更新功能。公共,私有和商业插件都一样–现在都可以享受自动更新通知和一键式升级的好处。


GitHub存储库

评论


您可能也有兴趣管理您身边的插件……也许使用由同一作者编写的wp-update-server软件包;)github.com/YahnisElsts/wp-update-server通过使用此服务器,您可以保护您的插件,如此处所述:w-shadow.com/blog/2013/03/19/…

–SimonSimCity
2014年7月9日在7:32

如何禁用免费插件上的wordpress默认更新检查器?

–csandreas1
17年11月11日在7:03

即使该网站看起来已经过时,该项目也得到了非常积极的支持,并且也可以与私有Bitbucket / Github仓库一起使用!有关可用的不同集成的更多信息,请参见其Github存储库。github.com/YahnisElsts/plugin-update-checker

– wp-overwatch.com
19-09-4在22:23

#3 楼

如果您喜欢免费...并且想要使用GitHub,GitLab或BitBucket之类的东西,那么这是一个高质量且受支持的插件来处理它(支持私有和企业版):

https:// github.com/afragen/github-updater

评论


哇!看起来是一个受支持的成熟项目!

–最强
16-10-12在20:44

依靠另一个插件似乎不是一个很干净的解决方案。

– kontur
18年2月13日在11:25

@kontur非常正确,但是好像它是开源的,并且不断更新的一样,它可以用作框架,也可以用作构建自己的代码示例。

–迈尔斯
18年2月13日在14:28

#4 楼

我正在调查同一件事。我发现了一些有用的链接:


Pastebin上的WordPress.org插件信息API文档
get_api_data()

首先是一些信息和指向升级API的指针。第二个是代码片段,显示如何实际从API请求信息。

评论


@Dougal-不错的链接!

– MikeSchinkel
2010-10-21 8:53

#5 楼

您可能想查看WordPress开发工具包插件。我最近将专有更新系统迁移到了此插件。该插件现在用作我的高级插件更新的后端处理器。

这与上面的agileapricot提供的解决方案的设置类似。它将作为标准插件安装在WordPress网站上。您将高级.zip文件和plugins.json托管在服务器上的生产或预发行目录中(在插件的设置中指定)。

该插件还允许您列出插件版本,甚至可以为公共,受密码保护或受订阅保护的页面上的文件提供下载。您可以在此处看到页面上版本列表的示例。

我已经使用插件几个月了,以发布高级插件的更改日志,当前版本列表和下载列表。给我的高级订阅用户。现在,版本为0.7.01,它可以用作内联WordPress更新的查询目标。

希望有些人觉得它有用。

#6 楼

如果您不需要托管的托管解决方案,请访问Kernl(https://kernl.us)。它的服务提供了用于更新插件的基础结构,并使其易于集成到您自己的插件中。

评论


这似乎可行。

– kontur
18年2月13日在18:33

#7 楼

您可以使用以下商业插件:http://autohosted.com/
没有限制,您可能需要其他一些功能:


没有月租费
无限使用
与主题和插件轻松集成
通过域,键和角色进行身份验证


评论


它不接受新注册...

–悬崖P
16-3-24在15:41