in ,

Cómo utilizar la API de WordPress.org para gestionar plugins y themes

Screenshot

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 como action, browse, search, tag o author.
  • 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 o theme_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ágina
  • per_page: elementos por página
  • search: término de búsqueda
  • tag: etiquetas específicas
  • author: 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 = '

‘; } $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.

Written by WPQuery

Deja una respuesta