gpt4 book ai didi

php - 获取所有插件的列表

转载 作者:可可西里 更新时间:2023-11-01 12:56:23 26 4
gpt4 key购买 nike

我想获得所有 Wordpress 插件的列表。

有一个名为 get_plugins() 的函数,但它会返回我安装的所有插件。我需要的是所有插件的列表,无论我之前是否安装过它们。

有我可以使用的功能吗?如果没有,是否有 JSON、数据库、API 或任何我可以使用的东西?

编辑:

var_dump(plugins_api('query_plugins', array(
'per_page' => 100,
'tag' => 'contact form 7',
'number' => 5,
'page' => 1,
'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
))));

这会返回我不需要的全部数据:

我唯一需要的数据是下面黄色标记的键:nameslug

enter image description here

我知道我可以将它们从阵列中取出,但这对性能非常不利。

即使我用循环尝试它,我也会得到 45 个插件,但不会更多。剩下的呢???

foreach ($plugins as $plugin) { // $plugins is the variable of my code above but without 'tag' => 'contact form 7',
foreach ($plugin as $p) {
if ($p != null) {
echo $p->name . "<br>";
}
}
}

最佳答案

不是最好的答案,但我尽力以最好的方式解决我自己的问题。

获取插件列表

这将不会返回所有插件,但会返回评价最高的插件:

$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

由于我们获取的数据量很大,对性能不利,我们尝试从数组中获取 nameslug 然后我们写它在一个 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 文件。

关于php - 获取所有插件的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51990613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com