J'écris actuellement un script qui s'exécute sur un serveur et qui est supposé obtenir des informations sur a) la version de WordPress b) les plugins c) les versions du plugin.
Le numéro de version de WordPress ne pose pas de problème, mais je ne sais pas comment obtenir de manière fiable les informations de plug-in requises. J'ai localisé le dossier du plugin (wp-content/plugins). Ce dossier contient-il tous les plugins?
Même si c'est le cas, je ne sais pas s'il existe une structure fixe pour obtenir a) le nom officiel b) le numéro de version officiel de tous les plugins.
Par exemple, un plug-in que j'ai vérifié avait le numéro de version dans un fichier .php avec une annotation @version, mais la version du second plug-in que j'ai vérifié faisait uniquement partie des commentaires (Version = 2.66 ou quelque chose comme cela).
Existe-t-il un moyen fiable d'obtenir ces informations sans utiliser PHP (car le script que j'écris n'est pas limité à WordPress et doit être exécuté sur des serveurs sans PHP)? Quelque chose comme une structure commune ou un fichier central avec les informations collectées sur les plugins?
La mauvaise nouvelle WP ne suit pas ces informations de manière persistante. Il ne conserve que la représentation technique des plugins actifs pour les charger. Le reste n'est recherché que dans des contextes spécifiques (tels que le panneau d'administration de la gestion des plug-ins), car les ressources sont relativement lourdes.
La bonne nouvelle est que vous pouvez certainement reconstruire cette fonctionnalité dans un programme arbitraire. La version canonique du plug-in WP est contenue dans son en-tête de fichier sous la forme d'un commentaire PHP. Malheureusement, ce format n'est pas trop convivial.
Vous pouvez demander à votre script de rechercher des en-têtes, en gardant à l'esprit plusieurs particularités:
Vous pouvez regarder dans la source pour voir comment WordPress le fait. Commencez par get_plugins
, qui utilise get_plugin_data
qui utilise get_file_data
pour lire l'en-tête.