Получите последнюю версию плагина из WP API
Я пишу плагин, который проверяет и собирает данные из WP, включая информацию об установленных плагинах.
Я могу получить большую часть необходимых мне данных, используя get_plugins()
- однако я также хотел бы проверить последнюю версию каждого плагина, размещенную в репозитории, - но, похоже, я не могу найти метод API для этого.
Извините, у меня нет кода для вставки комментариев.. но я хорошо поискал вокруг - честно!
Где я могу найти простой и эффективный способ проверить?
2 answers
Хорошо - вот метод - спасибо @Rarst за то, что указал мне правильное направление.
Включите файл require, если функция plugins_api не найдена:
if ( ! function_exists( 'plugins_api' ) ) {
require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
}
Затем подготовьте запрос для передачи в 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;
}
}
Ссылка: http://wp.tutsplus.com/tutorials/plugins/communicating-with-the-wordpress-org-plugin-api/
Существует не совсем простой способ сделать это, так как WP проверяет наличие обновлений плагинов, отправляя все свои данные оптом, и это довольно глубоко wp_update_plugins()
.
Он выполняет запрос к конечной точке API http://api.wordpress.org/plugins/update-check/1.1/
и получает данные обо всех обновлениях. Он недоступен в качестве более автономной функции для отдельных проверок.
Вы также можете заглянуть в API информации о плагинах, чтобы подойти к этому со стороны репозитория.