这不是最好的答案,但我尽力用最好的方式解决自己的问题。
获取插件列表not 返回所有插件,但它将返回top rated 其中:
$plugins = plugins_api(\'query_plugins\', array(
\'per_page\' => 100,
\'browse\' => \'top-rated\',
\'fields\' =>
array(
\'short_description\' => false,
\'description\' => false,
\'sections\' => false,
\'tested\' => false,
\'requires\' => false,
\'rating\' => false,
\'ratings\' => false,
\'downloaded\' => false,
\'downloadlink\' => false,
\'last_updated\' => false,
\'added\' => false,
\'tags\' => false,
\'compatibility\' => false,
\'homepage\' => false,
\'versions\' => false,
\'donate_link\' => false,
\'reviews\' => false,
\'banners\' => false,
\'icons\' => false,
\'active_installs\' => false,
\'group\' => false,
\'contributors\' => false
)));
将数据另存为JSON,因为我们得到的数据非常大,对性能不利,所以我们尝试获取
name
以及
slug
然后将其写入JSON文件:
$plugins_json = \'{\' . PHP_EOL;
// Get only the name and the slug
foreach ($plugins as $plugin) {
foreach ($plugin as $key => $p) {
if ($p->name != null) {
// Let\'s beautify the JSON
$plugins_json .= \' "\'. $p->name . \'": {\' . PHP_EOL;
$plugins_json .= \' "slug": "\' . $p->slug . \'"\' . PHP_EOL;
end($plugin);
$plugins_json .= ($key !== key($plugin)) ? \' },\' . PHP_EOL : \' }\' . PHP_EOL;
}
}
}
$plugins_json .= \'}\';
file_put_contents(\'plugins.json\', $plugins_json);
现在我们有了一个精简的JSON文件,其中只包含我们需要的数据。
为了不断更新JSON文件,我们通过设置Cron作业,每24小时运行该脚本来创建一个JSON文件。