Si desarrollaste un plugin para WordPress y WordPress.org ya aprobó su publicación, el siguiente paso es subir la primera versión al repositorio oficial.
WordPress.org utiliza SVN (Subversion) como sistema de control de versiones para gestionar el código de los plugins disponibles en su directorio.
Una vez aprobado el plugin, recibirás acceso a un repositorio con una URL similar a:
A partir de ese momento, las versiones que publiques en este repositorio serán utilizadas por WordPress.org para distribuir tu plugin y sus futuras actualizaciones.
En este tutorial veremos paso a paso cómo publicar un plugin utilizando TortoiseSVN en Windows.
Durante este proceso publiqué en WordPress.org el plugin:
MCOD Minimalist Checkout for WooCommerce
1. ¿Qué necesitas antes de comenzar?
TortoiseSVN
Para este tutorial utilizaremos TortoiseSVN, un cliente gráfico para SVN integrado directamente con el Explorador de archivos de Windows.
Puedes descargarlo desde su página oficial:
Después de instalarlo, es recomendable reiniciar Windows para asegurarte de que todas las opciones de TortoiseSVN aparezcan correctamente en el menú contextual del Explorador de archivos.
También puedes utilizar otro cliente SVN, pero los pasos de este tutorial están explicados utilizando TortoiseSVN.
Credenciales SVN de WordPress.org
Necesitarás:
- Tu username de WordPress.org.
- Tu SVN Password de WordPress.org.
El usuario SVN es el mismo username de la cuenta de WordPress.org con la que enviaste el plugin.
Importante: el username distingue entre mayúsculas y minúsculas.
WordPress.org permite generar una contraseña específica para SVN desde la configuración de tu cuenta.
Puedes administrar tu contraseña SVN desde:
Configurar SVN Password en WordPress.org
Mi perfil de desarrollador en WordPress.org:
Cristian Leguizamón en WordPress.org
2. Preparar los assets del plugin
Antes de publicar el plugin, es recomendable preparar las imágenes que aparecerán en su página pública de WordPress.org.
Estas imágenes se almacenan en la carpeta:
/assets/
Banner principal
banner-772x250.png
Dimensiones:
772 × 250 px
Banner Retina
banner-1544x500.png
Dimensiones:
1544 × 500 px
La versión de alta resolución complementa al banner normal, por lo que debes mantener también el archivo banner-772x250.png.
Versiones RTL
Opcionalmente puedes crear versiones destinadas a idiomas que se leen de derecha a izquierda, como árabe o hebreo:
banner-772x250-rtl.png
banner-1544x500-rtl.png
Importante: no es necesario crear estos archivos si simplemente van a ser una copia exacta del banner normal.
La documentación de WordPress recomienda utilizar la variante RTL únicamente cuando exista una adaptación real del diseño.
Iconos del plugin
Los tamaños habituales son:
icon-128x128.png
icon-256x256.png
WordPress utiliza estos iconos tanto en el directorio de plugins como en diferentes interfaces relacionadas con WordPress.org.
Screenshots
Si quieres mostrar capturas del funcionamiento del plugin puedes utilizar:
screenshot-1.png
screenshot-2.png
screenshot-3.png
screenshot-4.png
Y continuar la numeración según sea necesario.
Los nombres deben utilizar minúsculas. WordPress también admite imágenes JPG para las capturas.
Las descripciones que aparecen debajo de estas imágenes se configuran desde la sección Screenshots del archivo readme.txt.
3. Crear una carpeta local para tus plugins SVN
Puedes crear una carpeta en tu computador destinada a tus repositorios de WordPress.org.
Por ejemplo:
C:\WordPress-Plugins\
Dentro puedes trabajar con una carpeta correspondiente al slug de cada plugin:
C:\WordPress-Plugins\slug-del-plugin\
También puedes permitir que TortoiseSVN cree la carpeta durante el proceso de Checkout.
4. Descargar el repositorio con SVN Checkout
Supongamos que WordPress.org te entregó el siguiente repositorio:
https://plugins.svn.wordpress.org/slug-del-plugin/
Haz clic derecho sobre la ubicación donde quieres guardar el repositorio.
Selecciona:
SVN Checkout…
Dependiendo de tu instalación también puede aparecer dentro de:
TortoiseSVN → Checkout…
En:
URL of repository
coloca:
https://plugins.svn.wordpress.org/slug-del-plugin/
Mantén:
Checkout Depth: Fully recursive
Revision: HEAD revision
Luego presiona:
OK
TortoiseSVN descargará el repositorio y puede solicitar las credenciales de WordPress.org.
5. ¿Debo crear trunk, tags y assets manualmente?
Normalmente, no.
Cuando haces Checkout del repositorio oficial del plugin, WordPress.org ya tiene preparada la estructura principal:
slug-del-plugin/
│
├── assets/
├── tags/
└── trunk/
WordPress.org crea estas tres carpetas por defecto en los repositorios de plugins.
Cada una tiene una función diferente.
trunk
Contiene el código actual del plugin.
tags
Contiene las versiones publicadas.
Por ejemplo:
tags/
├── 1.0.0/
├── 1.0.1/
├── 1.1.0/
└── 1.2.0/
assets
Contiene los elementos visuales utilizados por la página del plugin en WordPress.org:
assets/
├── banner-772x250.png
├── banner-1544x500.png
├── icon-128x128.png
├── icon-256x256.png
├── screenshot-1.png
└── screenshot-2.png
Los assets no forman parte del ZIP que los usuarios descargan, por eso deben permanecer fuera de trunk. WordPress recomienda colocar aquí banners, iconos y screenshots.
6. Copiar el plugin dentro de trunk
Toma la versión final del plugin y copia todos sus archivos dentro de:
slug-del-plugin/trunk/
Por ejemplo:
trunk/
│
├── slug-del-plugin.php
├── readme.txt
├── uninstall.php
├── includes/
├── admin/
├── public/
└── languages/
El archivo PHP principal debe quedar directamente dentro de trunk.
No hagas esto:
trunk/
└── slug-del-plugin/
└── slug-del-plugin.php
La documentación oficial advierte que colocar el plugin completo dentro de otra subcarpeta de trunk puede romper las descargas generadas por WordPress.org.
7. No subir archivos innecesarios de Git
Si desarrollaste el plugin utilizando Git o GitHub, evita incluir archivos utilizados únicamente para desarrollo.
Por ejemplo:
.git/
.gitignore
.github/
Tampoco deberías publicar archivos temporales, configuraciones de tu IDE, backups o herramientas que no sean necesarias para ejecutar el plugin.
El repositorio SVN de WordPress.org debe utilizarse principalmente como repositorio de publicación, no como repositorio de desarrollo cotidiano. WordPress recomienda subir cambios terminados en lugar de realizar commits por cada pequeño cambio.
8. Revisar la versión del plugin
Antes del primer Commit debes comprobar la versión declarada en el archivo PHP principal.
Por ejemplo, si vas a publicar:
1.0.0
el encabezado del plugin debería contener:
/**
* Plugin Name: Nombre del Plugin
* Version: 1.0.0
*/
Por lo tanto:
Version: 1.0.0
9. Revisar el Stable Tag del readme.txt
Ahora abre:
readme.txt
En la cabecera debe aparecer:
Stable tag: 1.0.0
Si estás publicando la versión 1.0.0, lo recomendable es que coincidan:
Plugin PHP:
Version: 1.0.0
readme.txt:
Stable tag: 1.0.0
Tag SVN:
tags/1.0.0/
El Stable tag indica cuál es la versión estable del plugin y utiliza únicamente números y puntos. WordPress recomienda versionado semántico.
10. Revisar el Changelog
Antes de publicar también debes actualizar la sección:
== Changelog ==
Por ejemplo:
== Changelog ==
= 1.0.0 =
* Initial release.
En futuras versiones podrías tener:
== Changelog ==
= 1.1.0 =
* Added new checkout customization options.
* Improved WooCommerce compatibility.
* Fixed minor interface issues.
= 1.0.0 =
* Initial release.
Cada versión debería documentar los cambios más importantes realizados.
11. Agregar los archivos nuevos al SVN
Una vez hayas copiado el plugin dentro de trunk, TortoiseSVN detectará los nuevos archivos.
Estos archivos pueden aparecer con un icono indicando que todavía no forman parte del repositorio.
Selecciona los archivos o la carpeta correspondiente y utiliza:
TortoiseSVN → Add…
Marca los archivos que deseas agregar.
Una vez agregados estarán preparados para el Commit.
En SVN, copiar los archivos a la carpeta local no significa automáticamente que estén incluidos en el repositorio: primero deben añadirse y posteriormente enviarse mediante un Commit.
12. Hacer el primer Commit de trunk
Haz clic derecho sobre:
trunk
Selecciona:
SVN Commit…
Revisa los archivos que serán enviados.
Puedes utilizar un mensaje como:
Initial plugin release 1.0.0
O:
Prepare version 1.0.0 for release
También:
Release version 1.0.0
Finalmente presiona:
OK
TortoiseSVN enviará el código a WordPress.org.
Los commits de SVN requieren un mensaje que describa el cambio realizado.
13. Crear el Tag de la versión
Después de comprobar que trunk contiene exactamente la versión que quieres publicar, debes crear el Tag.
Si la versión es:
1.0.0
debes terminar con:
tags/1.0.0/
El Tag representa una versión concreta del plugin.
WordPress.org recomienda crear un tag para cada release formal.
14. Crear el Tag utilizando TortoiseSVN
Haz clic derecho sobre:
trunk
Selecciona:
TortoiseSVN → Branch/Tag…
TortoiseSVN mostrará la URL actual correspondiente a trunk.
Como destino utiliza:
https://plugins.svn.wordpress.org/slug-del-plugin/tags/1.0.0
Por ejemplo:
From:
https://plugins.svn.wordpress.org/slug-del-plugin/trunk
To:
https://plugins.svn.wordpress.org/slug-del-plugin/tags/1.0.0
Puedes utilizar como mensaje:
Tag version 1.0.0
O:
Tagging version 1.0.0
Presiona:
OK
SVN creará el Tag copiando el contenido de trunk.
Esta es precisamente la estrategia recomendada por WordPress: crear cada versión etiquetada a partir del código de trunk.
15. ¿Por qué el Tag puede no aparecer inmediatamente en mi carpeta local?
Cuando utilizas:
TortoiseSVN → Branch/Tag
puedes crear el nuevo Tag directamente en el repositorio remoto.
Eso significa que el Tag puede existir en WordPress.org pero todavía no aparecer en tu copia local.
Para actualizarla:
Haz clic derecho sobre la carpeta principal del repositorio y selecciona:
SVN Update
Después debería aparecer:
tags/
└── 1.0.0/
16. No modificar Tags ya publicados
Una vez que hayas creado:
tags/1.0.0/
debes considerarlo una versión publicada y cerrada.
No es recomendable seguir modificando su código.
Si encuentras un error, crea una nueva versión.
Por ejemplo:
1.0.0
pasa a:
1.0.1
Después crearías:
tags/1.0.1/
La estructura terminaría siendo:
tags/
│
├── 1.0.0/
├── 1.0.1/
├── 1.1.0/
└── 1.2.0/
De esta forma mantienes un historial claro de todas las versiones publicadas.
17. Subir los assets del plugin
Ahora copia las imágenes preparadas anteriormente dentro de:
/assets/
Por ejemplo:
slug-del-plugin/
│
├── assets/
│ ├── banner-772x250.png
│ ├── banner-1544x500.png
│ ├── banner-772x250-rtl.png
│ ├── banner-1544x500-rtl.png
│ ├── icon-128x128.png
│ ├── icon-256x256.png
│ ├── screenshot-1.png
│ └── screenshot-2.png
│
├── tags/
│ └── 1.0.0/
│
└── trunk/
Muy importante:
No debes colocar los assets de WordPress.org dentro de:
trunk/assets/
La ubicación correcta es:
/assets/
al mismo nivel que:
/tags/
/trunk/
La documentación oficial de WordPress establece precisamente esta estructura para screenshots, banners e iconos.
18. Agregar los assets al SVN
Después de copiar las imágenes:
Haz clic derecho sobre:
assets
Selecciona:
TortoiseSVN → Add…
Marca las imágenes nuevas.
Después realiza el Commit.
19. Hacer Commit de los assets
Haz clic derecho sobre:
assets
Selecciona:
SVN Commit…
Puedes utilizar mensajes como:
Add WordPress.org plugin assets
O:
Add plugin banners and icons
Si también añadiste screenshots:
Add plugin banners, icons and screenshots
Realiza el Commit.
Después de que WordPress.org procese los cambios, las imágenes comenzarán a aparecer en la página pública del plugin.
20. Comprobar el plugin en WordPress.org
Después de publicar la versión, entra en:
https://wordpress.org/plugins/slug-del-plugin/
Comprueba:
- Nombre del plugin.
- Versión publicada.
- Descripción.
- Changelog.
- Banner.
- Icono.
- Screenshots.
- Botón de descarga.
- Información del desarrollador.
También puedes revisar el código directamente desde la sección Development de la página del plugin.
21. Cómo publicar futuras actualizaciones
Supongamos que actualmente tienes:
1.0.0
y quieres publicar:
1.1.0
Antes de comenzar es recomendable actualizar tu copia local:
SVN Update
Después actualiza los archivos dentro de:
trunk/
Cambiar la versión del plugin
En el archivo PHP principal:
Version: 1.1.0
Cambiar el Stable Tag
En:
readme.txt
cambia:
Stable tag: 1.1.0
Actualizar el Changelog
Añade:
= 1.1.0 =
* Descripción de los cambios realizados.
Por ejemplo:
== Changelog ==
= 1.1.0 =
* Added new configuration options.
* Improved WooCommerce compatibility.
* Fixed minor bugs.
= 1.0.0 =
* Initial release.
22. Hacer Commit de la nueva versión
Después de actualizar trunk, realiza:
SVN Commit…
Puedes utilizar:
Release version 1.1.0
O:
Prepare version 1.1.0
23. Crear el nuevo Tag
Cuando trunk tenga exactamente la versión que quieres publicar:
Haz clic derecho sobre:
trunk
Selecciona:
TortoiseSVN → Branch/Tag…
Y crea:
tags/1.1.0/
Por ejemplo:
https://plugins.svn.wordpress.org/slug-del-plugin/tags/1.1.0
Mensaje:
Tag version 1.1.0
Nunca reemplaces el Tag anterior.
Con el tiempo tendrás:
tags/
│
├── 1.0.0/
├── 1.0.1/
├── 1.1.0/
├── 1.2.0/
└── 2.0.0/
24. Estructura final recomendada del repositorio
Tu repositorio debería terminar con una estructura similar a esta:
slug-del-plugin/
│
├── assets/
│ ├── banner-772x250.png
│ ├── banner-1544x500.png
│ ├── icon-128x128.png
│ ├── icon-256x256.png
│ ├── screenshot-1.png
│ └── screenshot-2.png
│
├── tags/
│ ├── 1.0.0/
│ └── 1.1.0/
│
└── trunk/
├── slug-del-plugin.php
├── readme.txt
├── uninstall.php
├── includes/
├── admin/
├── public/
└── languages/
Recomendaciones finales
Antes de publicar cualquier versión comprueba siempre:
- La versión del archivo PHP principal.
- El
Stable tagdelreadme.txt. - El Changelog.
- Que
trunkcontiene únicamente los archivos necesarios. - Que el Tag utiliza exactamente el mismo número de versión.
- Que no estás modificando un Tag publicado anteriormente.
- Que los banners, iconos y screenshots están en
/assets/. - Que no tienes archivos de desarrollo innecesarios.
- Que hiciste
SVN Updateantes de comenzar una nueva actualización.
Mantener esta estructura hará que las publicaciones y futuras actualizaciones del plugin sean mucho más fáciles de gestionar.
Documentación oficial
Para profundizar en el funcionamiento de SVN y el directorio de plugins puedes consultar:
Using Subversion — WordPress Plugin Handbook
Plugin Assets — WordPress Plugin Handbook
Plugin publicado durante este tutorial
El plugin que publiqué en WordPress.org mientras realizaba este proceso fue:
MCOD Minimalist Checkout for WooCommerce
Puedes verlo aquí:
MCOD Minimalist Checkout for WooCommerce en WordPress.org
La ficha pública confirma que el plugin está publicado bajo Cristian Leguizamón y permite acceder desde su sección de desarrollo tanto al código como al repositorio SVN.
Sobre el autor
Soy Cristian Leguizamón, desarrollador especializado en WordPress, WooCommerce y desarrollo web.
Puedes encontrar más tutoriales, proyectos y recursos de desarrollo en:
También puedes consultar mi perfil oficial y mis plugins publicados en WordPress.org:
Perfil de Cristian Leguizamón en WordPress.org
Actualmente mi perfil cuenta con la insignia Plugin Developer y muestra los plugins y contribuciones realizadas dentro de WordPress.org.