Saltar al contenido
Skill de Claude gratuita · Código abierto

WP Plugin Zip: zips de WordPress que se instalan a la primera

Una skill para Claude Code y Claude Desktop. Claude empaqueta tu plugin o tu tema con un script que comprueba lo mismo que WordPress, se niega a escribir un zip roto y te enseña el nombre y la versión antes de que lo subas. Y si ya tienes un zip que falla, te dice por qué.

Funciona en
Claude Code y Claude Desktop (pestaña Code y chats)
Para
Plugins y temas de WordPress
Requisitos
Python 3. PHP opcional, para revisar la sintaxis con php -l
Privacidad
Sin red: solo lee tus archivos y escribe el zip
Licencia
MIT, gratis
Versión
1.0.0

Por qué falla un zip que parece bueno

  • Compress-Archive de PowerShell puede escribir los nombres con \. En un servidor Linux, WordPress crea un archivo plano en lugar de la carpeta y dice «El archivo del plugin no existe».
  • Un BOM antes de <?php rompe la activación con «headers already sent».
  • El archivo principal queda una carpeta más abajo, o su cabecera pasa de los primeros 8 KB, que es todo lo que lee WordPress.
  • El «Download ZIP» de GitHub crea la carpeta mi-plugin-main, y las actualizaciones dejan de coincidir con el plugin instalado.
  • La descarga de un marketplace trae un zip dentro de otro zip: «No se ha podido descomprimir el paquete. No se encontraron plugins.»

Cómo instalarla

En Claude Code, como plugin

Escribe estos dos comandos en Claude Code:

/plugin marketplace add agenciaRSE/wp-plugin-zip
/plugin install wp-plugin-zip@wp-plugin-zip

En Claude Code, a mano

Copia la carpeta skills/wp-plugin-zip del repositorio en ~/.claude/skills/.

En Claude Desktop

Descarga wp-plugin-zip.zip de la última versión en GitHub.

Súbelo en Ajustes → Capacidades → Skills.

Úsala

Pídele a Claude «empaqueta el plugin», «haz el zip de la versión» o «¿por qué este zip dice que el archivo del plugin no existe?».

O usa el script sin Claude

Necesitas Python 3. build crea el zip y check revisa uno que ya tengas:

python wp_zip.py build mi-plugin --lint
python wp_zip.py check mi-plugin.zip

Qué hace

  • Crea el zip correcto: una sola carpeta con el nombre del slug, separadores / y entradas de carpeta explícitas.
  • Lo comprueba antes de escribirlo: cabecera Plugin Name: (o style.css con Theme Name:) en los primeros 8 KB, sin BOM y sin UTF-16. Con --lint, pasa php -l por cada archivo PHP.
  • Deja fuera la basura: .git, node_modules, .DS_Store, Thumbs.db, desktop.ini, otros zips, mapas de código y registros.
  • Saltos de línea LF aunque trabajes en Windows, para que dos paquetes del mismo código salgan iguales.
  • Revisa cualquier zip, tuyo, de un cliente o de un marketplace, y explica cada problema con su solución.
  • Te enseña el nombre, la versión y el autor de lo que vas a subir, para que no entregues un zip antiguo.

Privacidad y seguridad

  • wp_zip.py usa solo la librería estándar de Python: no se conecta a la red ni instala nada.
  • Lee la carpeta del plugin y escribe el zip donde le digas. No cambia tus archivos: la conversión a LF se hace solo dentro del zip.
  • El código es abierto: puedes leer el script antes de usarlo.

Creada y mantenida por AGENCIA RSE, un estudio de WordPress y software a medida de A Coruña. La usamos en cada versión de nuestros plugins. Ver todas nuestras skills de Claude

FAQ

Preguntas frecuentes

¿Por qué WordPress dice «El archivo del plugin no existe»?

Casi siempre porque el zip se hizo con Compress-Archive de PowerShell, que puede escribir los nombres con «\». En el servidor, WordPress crea un archivo plano en lugar de la carpeta del plugin. La otra causa habitual es que el archivo principal esté una carpeta más abajo de lo debido.

¿Qué significa «No se ha podido descomprimir el paquete. No se encontraron plugins»?

Que WordPress no encuentra un archivo PHP con la cabecera «Plugin Name:» justo dentro de la carpeta del plugin. Pasa mucho con las descargas de marketplaces, que traen el plugin en un zip dentro de otro zip con la documentación.

¿Por qué falla la activación con «headers already sent»?

Suele ser un BOM, unos bytes invisibles que algunos editores guardan antes de «<?php». La skill lo detecta y no escribe el zip hasta que guardes el archivo como UTF-8 sin BOM.

¿Sirve para temas?

Sí. Si no hay un plugin, busca un style.css con la cabecera «Theme Name:» en la carpeta raíz.

¿Necesito PHP instalado?

No. Solo Python 3. Si tienes PHP, la opción --lint revisa además la sintaxis de cada archivo.

¿Es gratis?

Sí. Es código abierto con licencia MIT.

¿Necesitas una skill de Claude a medida?

Creamos skills de Claude por encargo con los procesos, plantillas y scripts de tu equipo, para Claude Code, Claude Desktop y claude.ai.

Primera consulta sin coste. Analizamos lo que nos cuentas y te damos una respuesta en 48 h laborables.

Ver skills a medida Descargar en GitHub

Asistente de proyectos

IA AGENCIA RSE · responde al momento

    Estás hablando con una IA. Puedes escribir o pulsar para responder por voz. Una persona revisa cada ficha antes de responderte.

    Pago seguro con Stripe

    Preparando el pago…