【发布时间】:2018-08-23 16:43:10
【问题描述】:
我想获取所有 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
))));
这会返回我不需要的完整数据:
我需要的唯一数据是下面带有黄色标记的键:name 和 slug
我知道我可以将它们从数组中取出,但这对性能非常不利。
即使我尝试循环使用,我也会得到 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>";
}
}
}
【问题讨论】:
-
查看answer here,虽然它已经有几年历史了。更多信息 here 和 here。
-
@MarsAndBack 谢谢,非常好的信息!
https://api.wordpress.org/plugins/info/1.0/all-in-one-seo-pack.json返回一个 JSON,其中包含插件“All in one SEO pack”的所有信息。但是获取所有插件列表的 URL 是什么?如果您知道,请将其作为答案发布,我会接受。 -
有一个插件API,您可以像这样查询插件:
$api = plugins_api( 'query_plugins', $args );`developer.wordpress.org/reference/functions/plugins_api -
@jrswgtr 我用过
plugins_api('hot_tags'), array('page' => 90000000000, 'number' => 90000000000)。它返回一些插件,但不是全部。 -
试试这个:
$api = plugins_api( 'query_plugins', [ 'per_page' => -1 ] )