J'écris un plugin qui vérifie et collecte les données de WP, y compris des informations sur les plugins installés.
Je peux obtenir la plupart des données dont j'ai besoin à l'aide de get_plugins()
- cependant, j'aimerais également vérifier la dernière version hébergée dans le référentiel de chaque plugin - mais je n'arrive pas à trouver une méthode d'API pour cela.
Désolé, je n'ai pas de code à coller pour les commentaires .. mais j'ai fait une bonne recherche - honnête!
Où puis-je trouver un moyen simple et efficace de vérifier?
Ok - voici une méthode - merci à @Rarst de m'avoir orienté dans la bonne direction.
Incluez le fichier requis si la fonction plugins_api n’est pas trouvée:
if ( ! function_exists( 'plugins_api' ) ) {
require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
}
Ensuite, préparez une requête à transmettre à plugins_api ():
// set the arguments to get latest info from repository via API ##
$args = array(
'slug' => 'plugin-slug-name',
'fields' => array(
'version' => true,
)
);
/** Prepare our query */
$call_api = plugins_api( 'plugin_information', $args );
/** Check for Errors & Display the results */
if ( is_wp_error( $call_api ) ) {
$api_error = $call_api->get_error_message();
} else {
//echo $call_api; // everything ##
if ( ! empty( $call_api->version ) ) {
$version_latest = $call_api->version;
}
}
ref: http://wp.tutsplus.com/tutorials/plugins/communicating-with-the-wordpress-org-plugin-api/
Il n'y a pas tout à fait de simple moyen de le faire, puisque WP vérifie les mises à jour de plug-in en soumettant toutes leurs données en vrac, ce qui est assez enfoui dans wp_update_plugins()
.
Il effectue une requête sur le noeud final de l'API http://api.wordpress.org/plugins/update-check/1.1/
et obtient des données sur toutes les mises à jour. Ce n'est pas disponible en tant que fonction plus contenue pour les contrôles individuels.
Vous pouvez également regarder dans Plugin Information API pour aborder ceci du côté du référentiel.