Skip to content

Todo para WordPress, el desarrollo web — y mucho más

🚀 Actualización automática de plugins de WordPress desde GitHub: configuración paso a paso

🚀 Actualización automática de plugins de WordPress desde GitHub: configuración paso a paso

Ha lanzado una nueva versión de su plugin en GitHub, pero los usuarios siguen atascados en la anterior. Descargar ZIP manualmente, subirlos por el panel de administración, verificar la compatibilidad: tareas rutinarias que consumen tiempo y generan errores.

El mecanismo de actualización estándar de WordPress está vinculado al directorio oficial de WordPress.org. Pero no todos los plugins terminan allí: soluciones personalizadas para clientes, herramientas internas de equipo, bifurcaciones de plugins populares con modificaciones. Estos necesitan una vía diferente.

Afortunadamente, ofrecer actualizaciones directamente desde GitHub se resolvió hace tiempo. A continuación, dos métodos funcionales: uno simple (el plugin Git Updater, un par de clics) y otro avanzado (una clase PHP integrada para control total).

💡 Resumen rápido:

  • Instale Git Updater: detecta las publicaciones de GitHub como actualizaciones normales de WordPress
  • Para repositorios privados, configure un token de acceso en los ajustes del plugin
  • Si está escribiendo su propio plugin y quiere incorporar las actualizaciones automáticas en el código: use la clase PHP integrada
  • El repositorio debe contener una cabecera de plugin válida y una etiqueta de versión

Método 1: Git Updater, actualizaciones en dos clics

Interfaz del plugin Git Updater para WordPress

Git Updater es un plugin gratuito que añade soporte para GitHub, Bitbucket, GitLab y Gitea a la pantalla de actualizaciones estándar de WordPress. Tras la instalación, los plugins y temas desde GitHub se actualizan en el mismo lugar que los normales: Escritorio → Actualizaciones.

El desarrollador Andy Fragen mantiene el proyecto desde 2015. La página de Git Updater en GitHub tiene más de 400 estrellas y un repositorio activo con commits regulares. La base de conocimiento en git-updater.com cubre la instalación, configuración de tokens y uso de la API.

La instalación es simple: descargue el ZIP desde la publicación en GitHub, súbalo por Plugins → Añadir nuevo → Subir plugin y actívelo. El plugin comienza inmediatamente a rastrear los repositorios especificados en las cabeceras de los plugins y temas instalados.

Para repositorios privados, necesitará un token. Cree un Token de Acceso Personal en Ajustes de GitHub → Configuración de desarrollador → Tokens (permisos: repo para privados; no necesita token para públicos), péguelo en Ajustes → Git Updater. Después, el plugin puede ver incluso los repositorios cerrados.

Un detalle importante: Git Updater busca etiquetas en formato X.Y.Z (versionado semántico) en el repositorio. Si no hay etiquetas, la actualización no funcionará. Antes de publicar, establezca siempre una etiqueta: git tag 1.2.0 && git push --tags.

Método 2: clase PHP integrada para desarrolladores

Si usted es autor de un plugin y quiere incorporar el mecanismo de actualización automática directamente en su código (sin un plugin intermediario separado), el enfoque clásico de la clase PHP sigue funcionando. Es más ligero que la clase original de Joachim Kudish y radishconcepts y utiliza hooks nativos de WordPress.

Añada el siguiente código al archivo principal de su plugin o a un archivo updater.php separado incluido mediante require_once:

1/**
2 * Auto-update from GitHub releases.
3 * Place in main plugin file or include via require_once.
4 */
5function myplugin_check_github_update($transient) {
6 if (empty($transient->checked)) {
7 return $transient;
8 }
9
10 $plugin_slug = 'my-plugin/my-plugin.php';
11 $github_repo = 'username/my-plugin';
12
13 $response = wp_remote_get(
14 'https://api.github.com/repos/' . $github_repo . '/releases/latest',
15 array(
16 'headers' => array(
17 'Accept' => 'application/vnd.github.v3+json',
18 'User-Agent' => 'WordPress/' . get_bloginfo('version'),
19 ),
20 )
21 );
22
23 if (is_wp_error($response) || wp_remote_retrieve_response_code($response) !== 200) {
24 return $transient;
25 }
26
27 $release = json_decode(wp_remote_retrieve_body($response));
28
29 if (!isset($release->tag_name)) {
30 return $transient;
31 }
32
33 $latest_version = ltrim($release->tag_name, 'v');
34 $current_version = $transient->checked[$plugin_slug] ?? '0';
35
36 if (version_compare($latest_version, $current_version, '>')) {
37 $transient->response[$plugin_slug] = (object) array(
38 'slug' => dirname($plugin_slug),
39 'new_version' => $latest_version,
40 'url' => 'https://github.com/' . $github_repo,
41 'package' => $release->zipball_url,
42 );
43 }
44
45 return $transient;
46}
47add_filter('pre_set_site_transient_update_plugins', 'myplugin_check_github_update');

El código hace exactamente tres cosas: consulta la API de GitHub para obtener la última publicación, compara la versión de tag_name con la versión actual del plugin y, si GitHub tiene una más reciente, registra la actualización en el mecanismo estándar de WordPress. La versión del plugin se toma de la cabecera estándar Version: X.Y.Z del archivo principal.

Nota: para repositorios públicos no se necesita token, pero la API de GitHub sin token limita la frecuencia de solicitudes a 60 por hora por IP. Para un plugin en producción con muchos usuarios, añada caché de resultados mediante set_transient() durante 6-12 horas. Así no alcanzará el límite cada vez que alguien visite la página de plugins.

Comparación de enfoques

Criterio

Git Updater

Clase PHP integrada

Complejidad de configuración

Mínima (instalar y funciona)

Media (necesita escribir y probar código)

Soporte para GitLab/Bitbucket

Sí (mediante complementos de API)

No (solo GitHub, requiere código separado)

Repositorios privados

Sí (soporte de token integrado)

Sí (añadir cabecera Authorization)

Dependencia de código de terceros

Sí (necesita actualizar el plugin)

No (el código está dentro de su plugin)

Caché de solicitudes API

Integrado

Necesita implementarlo usted mismo

Adecuado para

Propietarios de sitios, freelancers

Desarrolladores de plugins, agencias

Conclusión: si está instalando en un sitio un plugin de GitHub de un tercero, use Git Updater. Si usted es autor de un plugin y lo distribuye a través de GitHub, incorpore las actualizaciones automáticas en el código para que los usuarios no tengan que instalar un plugin adicional.

Configuración del repositorio para actualizaciones automáticas

Sea cual sea el método que elija, el repositorio de GitHub debe estar correctamente preparado. Tres puntos obligatorios:

  • Cabecera del plugin. En el archivo PHP principal, incluya la cabecera estándar de WordPress: Plugin Name, Version, Author y Plugin URI con un enlace al repositorio. Git Updater lee Plugin URI y GitHub Plugin URI; especifique al menos uno.

  • Etiquetas de versión. Acompañe cada publicación con una etiqueta: git tag 1.3.0 && git push origin 1.3.0. Sin etiquetas, ni Git Updater ni la solicitud API verán la nueva versión.

  • Archivo Léame. Añada un README.md con descripción, registro de cambios y enlace de instalación. Git Updater muestra el contenido del léame en la pantalla de información del plugin, ahorrando tiempo a los usuarios que no necesitan visitar GitHub para ver las instrucciones.

Con GitHub Actions puede ir más allá: al subir una etiqueta, construya automáticamente el ZIP, genere un registro de cambios a partir de los commits y cree una Publicación de GitHub con el archivo adjunto. Hay un flujo de trabajo listo para usar en la documentación oficial de GitHub; adáptelo para WordPress reemplazando el paso de construcción por el empaquetado del plugin.

El video muestra el proceso completo desde la instalación de Git Updater hasta la primera actualización automática del plugin. Recomendamos verlo antes de la configuración: 12 minutos de grabación de pantalla le ahorrarán una hora de experimentación.

⁉️🤔 Preguntas frecuentes

¿Funciona Git Updater con plugins del directorio oficial de WordPress.org?

Sí, pero no tiene sentido. Los plugins de WordPress.org ya reciben actualizaciones mediante el mecanismo estándar. Git Updater es específicamente para plugins y temas que no están en el directorio: desarrollos a medida, bifurcaciones, plugins en revisión.

¿Se puede usar Git Updater en un sitio en producción?

Sí, el proyecto es estable y se mantiene desde 2015. Antes de instalarlo, haga una copia de seguridad completa (como con cualquier plugin nuevo). En un sitio de pruebas, verifique la actualización de al menos un plugin, asegúrese de que las etiquetas en el repositorio están configuradas correctamente y que la actualización se aplica sin errores.

¿Qué pasa si la API de GitHub alcanza el límite de solicitudes?

Para repositorios públicos, el límite es de 60 solicitudes por hora desde una IP. Git Updater almacena en caché las respuestas durante 12 horas, por lo que el problema rara vez ocurre. Si sucede, cree un Token de Acceso Personal gratuito (sin permisos adicionales) y añádalo en Ajustes → Git Updater: el límite sube inmediatamente a 5000 solicitudes por hora.

¿Qué hacer si el plugin en GitHub usa dependencias de Composer?

Git Updater no ejecuta composer install durante las actualizaciones. Si su plugin depende de paquetes de Composer, incorpore la autocarga mediante un paquete (incluya vendor/ en el ZIP de la publicación) o añada un script posterior a la actualización que verifique las dependencias y avise al administrador si faltan.

¿Se pueden actualizar plugins desde un repositorio privado en GitHub gratuito?

Sí. Las cuentas gratuitas de GitHub incluyen repositorios privados ilimitados. Cree un Token de Acceso Personal con permiso repo, añádalo a Git Updater y el plugin obtendrá acceso a sus repositorios privados.

Actualizaciones automáticas desde GitHub: qué usar en 2026

Para el propietario de un sitio, la respuesta es clara: Git Updater. Gratuito, estable, no requiere código.

Para un desarrollador de plugins, la elección depende de la audiencia. Si su producto lo instalan usuarios comunes, incorpore la clase PHP de actualización automática directamente en el código del plugin. Un plugin intermediario adicional en la cadena reduce la conversión de instalación. Si el producto es para una audiencia técnica, Git Updater como dependencia es aceptable; solo menciónelo en las instrucciones.

Revise sus plugins de GitHub ahora mismo: ¿están configuradas las etiquetas en las últimas publicaciones, está completo el Plugin URI en la cabecera, tiene el usuario una ruta de actualización clara? Quince minutos de configuración le ahorrarán a usted y a sus usuarios la molestia manual con archivos ZIP durante años.