Puntos clave de un vistazo
- Sobre las APIs de WordPress.org: Los usuarios y desarrolladores suelen interactuar con los repositorios de plugins y temas para tareas como seleccionar o actualizar plugins. Sin embargo, el sitio web carece de funciones para filtrar y ordenar por todos los campos disponibles, lo que complica tareas como listar los Temas de WordPress más populares o los Plugins más antiguos.
- Endpoint de la API de WordPress.org: El endpoint es
https://api.wordpress.org/{target}/info/{api_version}
, acepta solicitudes GET y devuelve respuestas en JSON. Se proporciona un fragmento de código para consultar plugins o temas con parámetros comoaction
,browse
,search
,tag
oauthor
. - Consulta de listas de Plugins y Temas: Puedes realizar solicitudes para obtener listas de plugins o temas, con parámetros para filtrar, ordenar y paginar los resultados. Se ofrece un ejemplo de código para empezar.
- Campos adicionales disponibles para Temas: Se explican campos extra que puedes incluir en tus consultas de temas, como la descripción, valoraciones, capturas de pantalla y URLs de soporte.
- Consulta de información específica: Puedes recuperar datos detallados de un plugin o tema específico utilizando las acciones
plugin_information
otheme_information
. Se incluye un ejemplo del formato de respuesta.
1. Acerca de las APIs de WordPress.org
En el día a día con WordPress, los usuarios interactúan con los repositorios de plugins y temas desde el navegador o el panel de administración para tareas como instalación o actualización. No obstante, el sitio de WordPress.org no permite ordenar y filtrar por todos los campos, lo cual limita su funcionalidad cuando se necesita, por ejemplo, mostrar dinámicamente los plugins más descargados o los temas mejor valorados.
Además, si desarrollas herramientas que muestran información sobre un plugin específico (como instalaciones activas o última actualización), usar la API es mucho más efectivo que actualizar manualmente esa información. Aunque el Codex ofrece una página sobre la API, está desactualizada. Aquí aprenderás cómo utilizar la API moderna de WordPress.org paso a paso.
2. Endpoint y parámetros de la API de WordPress.org
El endpoint principal de la API de WordPress.org es:
https://api.wordpress.org/{target}/info/{api_version}
Donde el parámetro {target}
puede ser plugins
o themes
, y la versión actual de la API es 1.2. Este endpoint acepta únicamente peticiones GET y devuelve los resultados en formato JSON.
Ejemplo en PHP:
function query_items(string $type, string $action, string $sort, int $page, string $slug = ''): ?array {
$url = ($type === 'plugins')
? 'https://api.wordpress.org/plugins/info/1.2/'
: 'https://api.wordpress.org/themes/info/1.2/';
$query_args = [
'action' => $action,
'browse' => $sort,
'per_page' => 100,
'page' => $page,
'fields' => [
'downloaded' => true,
'creation_time' => true,
'tags' => true,
'active_installs' => true,
'last_updated' => true,
],
];
if ($slug) {
$query_args['slug'] = $slug;
}
$res = wp_remote_post($url, [
'method' => 'GET',
'body' => $query_args,
]);
return json_decode(wp_remote_retrieve_body($res), true);
}
3. Cómo consultar listas de plugins o temas
Define la acción como query_plugins
o query_themes
. Puedes utilizar los siguientes parámetros:
browse
: popular, newest, updated, etc.page
: número de páginaper_page
: elementos por páginasearch
: término de búsquedatag
: etiquetas específicasauthor
: nombre de autor
4. Campos adicionales para Temas
En las consultas de temas, puedes solicitar campos extra como:
description
screenshot_url
rating
num_ratings
homepage
support_url
5. Consultar información de un plugin o tema específico
Para obtener los datos de un elemento en concreto, usa la acción plugin_information
o theme_information
y añade el slug
. Ejemplo:
https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&slug=contact-form-7
La respuesta incluirá datos como nombre, autor, descripción, instalaciones activas, última versión, fecha de actualización y más.
6. Cómo integrar esta API en WordPress con un shortcode
function mostrar_plugins_populares() {
$datos = consultar_elementos('plugins', 'query_plugins', 'popular', 1);
if (!empty($datos['plugins'])) {
$salida = '
-
- ‘; foreach ($datos[‘plugins’] as $plugin) { $salida .= ‘
- ‘ . esc_html($plugin[‘name’]) . ‘ – ‘ . $plugin[‘active_installs’] . ‘ instalaciones
‘; } $salida .= ‘
‘; return $salida; } return ‘No se encontraron plugins.’; } add_shortcode(‘plugins_populares’, ‘mostrar_plugins_populares’);
7. Automatización con CRON Jobs
Para no sobrecargar la API en tiempo real, puedes usar wp_schedule_event
para programar tareas automáticas que almacenen resultados en opciones de WordPress o campos personalizados, ideal para paneles internos o informes.
8. Crear un dashboard de plugins en el panel de administración
Utilizando add_menu_page()
puedes crear un dashboard dentro de /wp-admin
que muestre las estadísticas de plugins o temas consultados con esta API, muy útil para mantenimiento web profesional.
9. Buenas prácticas y seguridad
- Valida siempre las respuestas antes de procesarlas.
- Cachea resultados con
transients
si no necesitas datos en tiempo real. - Escapa y sanitiza todos los datos antes de mostrarlos.
10. Localización y multilingüe
La API de WordPress.org no soporta idiomas directamente. Si usas WPML o Polylang, tendrás que traducir o adaptar los resultados manualmente si quieres ofrecer una experiencia localizada.
11. Preguntas frecuentes
¿La API de WordPress.org tiene límite de uso?
No hay un límite documentado, pero se recomienda cachear los datos para no abusar del servicio.
¿Se puede acceder a plugins premium mediante esta API?
No, solo devuelve información sobre plugins y temas disponibles en el repositorio oficial de WordPress.org.
Conclusión
La API de WordPress.org es una herramienta potente para desarrolladores, agencias y profesionales del mantenimiento web. Con ella puedes automatizar listados, enriquecer fichas de contenido o mostrar datos dinámicos siempre actualizados. Implementarla en tu proyecto es fácil, flexible y muy útil.