也许有某种API可用
Yes, there is, 你可以去看看here.
这里有一些链接自该Codex页面的示例,您可能希望使用版本1.2(GET
(仅请求)或API的1.1版本,其中这两个版本的响应格式均为JSON。
实际上,还有plugins_api()
让事情变得容易;但是,您需要手动加载定义函数的文件(wp-admin/includes/plugin-install.php
).
示例使用plugins_api()
// You may comment this out IF you\'re sure the function exists.
require_once ABSPATH . \'wp-admin/includes/plugin-install.php\';
$args = [
\'slug\' => \'woocommerce\',
];
$data = plugins_api( \'plugin_information\', $args );
//var_dump( $data );
if ( $data && ! is_wp_error( $data ) ) {
echo \'Latest version: \' . $data->version;
}
手动HTTP请求示例
$args = [
\'slug\' => \'woocommerce\',
];
$url = \'http://api.wordpress.org/plugins/info/1.2/\';
$url = add_query_arg( [
\'action\' => \'plugin_information\', // first param for plugins_api()
\'request\' => $args, // second param for plugins_api()
], $url );
$res = wp_remote_get( $url );
if ( ! is_wp_error( $res ) ) {
$data = json_decode( wp_remote_retrieve_body( $res ) );
//var_dump( $data );
echo \'Latest version: \' . $data->version;
}
无论哪种方式,如果您想排除某些字段(如评论)和自述部分(如“说明”和“安装”),可以使用
fields
类似这样的论点:
$args = [
\'slug\' => \'woocommerce\',
\'fields\' => [
\'sections\' => false, // excludes all readme sections
\'reviews\' => false, // excludes all reviews
],
];