如何从本地文件中获取所有插件及其版本号?

时间:2015-09-16 作者:R.G.

我目前正在编写一个在服务器上运行的脚本,它应该可以获取以下信息:a)WordPress版本b)插件c)插件版本。

WordPress版本号没有问题,但我不确定如何可靠地获得所需的插件信息。我找到了插件文件夹(wp内容/插件)。此文件夹是否包含所有插件?

即使有,我也不知道是否有一个固定的结构来获取a)官方名称b)所有插件的官方版本号。

例如,我检查的一个插件的版本号为。带有@version注释的php文件,但我检查的第二个插件的版本只是注释的一部分(版本=2.66或类似的内容)。

有没有一种可靠的方法可以在不使用PHP的情况下获取这些信息(因为我编写的脚本不限于WordPress,必须在没有PHP的服务器上运行)?类似于一个公共结构,或者一个包含插件收集信息的中心文件?

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

坏消息WP不会持续跟踪此信息。它只保留了用于加载插件的活动插件的技术表示。剩下的部分只能在特定的上下文中查找(例如插件管理管理面板),因为它占用的资源相对较多。

好消息是,您当然可以在任意程序中重建此功能。WP插件的规范版本包含在File Header 以PHP注释的形式。不幸的是,它不是太机器友好的格式。

您可以让脚本扫描标题,但要记住以下几个怪癖:

版本不是强制性的,可能会完全丢失

SO网友:Milo

您可以在源代码中查看WordPress是如何做到这一点的。开始于get_plugins, 其中使用get_plugin_data 其中使用get_file_data 读取标题。