看起来适用的代码在wp-includes/update.php
, wp_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。组织。从技术上讲,把钥匙放进去是可能的
$to_send
授权检查,但据我所知,该功能不受支持
如果你陷入set_site_transient_update_plugins
您可以将自己的包详细信息添加到此变量中。运行插件更新程序时,这些值看起来是可信的。看见wp-admin/update.php
和wp-admin/includes/class-wp-upgrader.php
. 考虑到这两个函数中的代码,我认为有可能注入您自己的更新服务器,您只需要查看包详细信息的格式并与之匹配