Armar un plugin multilingüe gratuito para un theme custom no es ciencia ficción en 2026. Un equipo de CodeMiner42 publicó en su blog técnico el proceso completo para construir uno usando Claude Code, el asistente de Anthropic: generaron el scaffolding del plugin, la REST API con filtrado por idioma, las etiquetas hreflang y el selector de idioma en frontend sin tocar una licencia paga. Del lado de contenido, Javier Aguilar documentó cómo estructuró los archivos markdown por idioma usando Claude Code como skill de escritura bilingüe, con translationKey para enlazar versiones. La combinación de ambos enfoques —código y contenido— te da un plugin funcional, auditable y sin costo de suscripción.
Un plugin multilingüe gratuito para WordPress es una extensión auto-desarrollada (o generada con asistencia de IA como Claude Code) que permite servir el contenido de un sitio en dos o más idiomas sin depender de soluciones comerciales como WPML o Weglot. Claude Code, lanzado por Anthropic, es una herramienta CLI que los desarrolladores usan desde la terminal para generar, revisar y depurar código PHP, JavaScript y configuraciones de WordPress directamente sobre el filesystem del proyecto.
En 30 segundos
- Claude Code puede generar el esqueleto completo de un plugin multilingüe con REST API, hreflang dinámico y selector de idioma en menos de una hora de iteración.
- No necesitás WPML ni Weglot si tu theme es custom y tenés control sobre los templates; el plugin se adapta a tu estructura, no al revés.
- El contenido se organiza por archivos markdown con prefijo de idioma (blog-es/, blog-en/) y se enlazan mediante una translationKey en el frontmatter.
- Las etiquetas hreflang se generan dinámicamente desde el plugin, evitando contenido duplicado y mejorando el SEO multilingüe sin plugins extra.
- La validación post-generación es crítica: scripts como validate-blog.js revisan que las descripciones no estén truncadas, que el código sea ejecutable y que los CTAs funcionen en todos los idiomas.
¿Por qué necesitás un plugin multilingüe para tu tema personalizado?
Si ya pasaste por la experiencia de instalar un plugin comercial de traducción sobre un theme hecho a medida, sabés que el 30% del tiempo se te va en hacer que los strings del theme sean traducibles, otro 40% en pelear con la interfaz del plugin, y el resto en rezar para que una actualización no rompa la mitad de las traducciones. Multiplicá eso por tres idiomas y tenés un lindo presupuesto mensual en licencias.
La alternativa de armar tu propio plugin multilingüe tiene tres ventajas concretas. Primero, el control total sobre cómo se almacena y sirve el contenido traducido: podés usar archivos markdown, custom post types o lo que tu arquitectura ya maneje. Segundo, cero costo recurrente —si ya tenés el theme custom, agregarle capacidades multilingües es una extensión natural del desarrollo. Tercero, las etiquetas hreflang y la detección de idioma del navegador las implementás exactamente como tu estrategia SEO lo pide, sin adaptarte a la lógica genérica de un plugin third-party.
Eso sí: la contrapartida es que el mantenimiento corre por tu cuenta. Si agregás un custom post type nuevo, tenés que actualizar el plugin para que lo reconozca. Si cambiás la estructura de URLs, hay que revisar las redirecciones. No es un set-and-forget —pero para un equipo de desarrollo interno, es perfectamente manejable.
¿Qué es Claude Code y cómo funciona para crear plugins?
Claude Code es la herramienta CLI que Anthropic liberó para que los desarrolladores interactúen con Claude directamente desde la terminal. No es un chat en el navegador: es un agente que lee tu filesystem, entiende la estructura de tu proyecto WordPress, y genera archivos PHP, JavaScript y CSS donde corresponde. Según documentó el equipo de CodeMiner42 en su blog, lo usaron para generar el scaffolding completo de un plugin multilingüe: custom post types, REST API endpoints con filtrado por idioma, lógica de detección de idioma del navegador, y un sistema de hreflang dinámico que se autogenera según las traducciones disponibles.
El flujo que describen es más o menos así: le pedís a Claude Code que analice tu theme actual, identifique dónde se renderiza el contenido, y proponga una arquitectura de plugin que intercepte esos puntos para servir la versión en el idioma detectado. Claude te devuelve los archivos .php con los hooks de WordPress correctos (init, template_redirect, wp_head para los hreflang) y vos los revisás, probás en local, e iterás. Lo interesante es que el asistente no solo genera código —también documenta cada decisión de arquitectura en el mismo README del plugin (sí, en serio, eso impresiona). Te puede servir nuestra cobertura comparando Claude con Gemini.
Javier Aguilar, por su parte, armó un skill de Claude Code para escribir contenido bilingüe y lo integró con su pipeline de Astro MDX. Su enfoque es más del lado del contenido que del plugin en sí: archivos .mdx con frontmatter que incluye lang, title, description y una translationKey que enlaza la versión en español con la versión en inglés. El plugin de WordPress que consuma esos archivos (o que importe ese contenido vía REST API) puede usar esa misma clave para saber qué posts son traducciones entre sí. ¿La parte más copada? Las traducciones las genera Claude Code en el mismo flujo de escritura, no después.
¿Qué funcionalidades debe tener un plugin multilingüe gratuito?
Basándome en lo que CodeMiner42 implementó y en lo que yo mismo necesité en proyectos reales, estas son las funcionalidades que un plugin multilingüe propio no puede saltearse. No hace falta que las tengas todas en la versión 0.1, pero sí en tu roadmap desde el día cero.
- Separación de contenido por idioma con custom post types o metadata. El plugin de CodeMiner42 usa un campo meta _language para filtrar posts por idioma en la REST API. Simple y efectivo.
- Detección automática del idioma del navegador vía Accept-Language header, con opción de override manual desde un selector en frontend.
- Selector de idioma visible que no rompa el diseño del theme —lo integrás con un hook en el header o vía shortcode.
- Soporte para etiquetas hreflang generadas dinámicamente y metidas en el <head> de cada página, apuntando a todas las versiones disponibles del mismo contenido.
- URLs amigables por idioma con prefijo (/en/, /es/) o por subdominio, sin query strings ridículos tipo ?lang=en que Google detesta.
- Traducción manual + asistencia de IA opcional. El plugin no debería obligarte a usar un servicio externo, pero si querés enganchar Claude API para traducir borradores, la arquitectura tiene que permitirlo.
La decisión de arquitectura más importante es si usás custom post types por idioma (post_en, post_es) o un solo CPT con metadata de idioma. CodeMiner42 fue por la segunda opción porque simplifica las queries y las relaciones entre traducciones. Para sitios con menos de 5 idiomas y contenido que se actualiza seguido, esa es la que va.
¿Cómo estructurar el frontmatter y los archivos para múltiples idiomas?
El enfoque de archivos por idioma que documenta Javier Aguilar es directo al hueso: creás una carpeta por idioma (blog-es/, blog-en/, blog-pt/) y dentro de cada una ponés los archivos markdown con el contenido en ese idioma. Lo que los enlaza es una translationKey en el frontmatter —un identificador único tipo «post-lanzamiento-plugin-2026» que se repite en las versiones en español, inglés y portugués del mismo artículo.
Un frontmatter típico para la versión en español se vería así:
—
lang: es
translationKey: plugin-multilingue-claude-code
title: «Cómo crear un plugin multilingüe gratuito con Claude Code»
description: «Guía paso a paso para armar tu propio plugin de traducción en WordPress usando Claude Code como asistente.»
slug: plugin-multilingue-gratuito-claude-code
—
Y la versión en inglés mantiene la misma translationKey pero cambia lang, title, description y slug. El plugin de WordPress (o el script de importación) lee todos los archivos, agrupa por translationKey, y expone vía REST API un endpoint que devuelve el post en el idioma solicitado con un array de traducciones disponibles. Así de limpio.
Ojo con un detalle que parece obvio pero se pasa por alto: si un artículo no tiene traducción en cierto idioma, el frontmatter de esa versión no debería existir. No crees archivos vacíos «para completar» —el plugin tiene que manejar graceful fallback al idioma default sin escupir errores 404 fantasma. Cubrimos ese tema en detalle en alternativas entre plantillas de pago y Claude.
¿Cómo implementar etiquetas hreflang y SEO multilingüe?
Las etiquetas hreflang son la diferencia entre que Google entienda tu sitio multilingüe o lo penalice por contenido duplicado. El plugin que armó CodeMiner42 las genera dinámicamente en el wp_head, recorriendo las traducciones disponibles para el post actual y escupiendo un link rel=»alternate» hreflang=»xx» por cada idioma, más un hreflang=»x-default» para la versión canónica.
El formato que deberías generar es este (ejemplo para un post disponible en español, inglés y portugués):
- <link rel=»alternate» hreflang=»es» href=»https://tusitio.com/es/plugin-multilingue-gratuito» />
- <link rel=»alternate» hreflang=»en» href=»https://tusitio.com/en/free-multilingual-plugin» />
- <link rel=»alternate» hreflang=»pt» href=»https://tusitio.com/pt/plugin-multilingue-gratuito» />
- <link rel=»alternate» hreflang=»x-default» href=»https://tusitio.com/es/plugin-multilingue-gratuito» />
El sitemap también tiene que reflejar las alternativas. Si usás WordPress vanilla, vas a necesitar un filtro en wpseo_sitemap_url o en el sitemap nativo (si estás en WP 6.7+) para inyectar los links alternativos por cada URL. No es complejo —son 20 líneas de PHP— pero si lo omitís, Google trata cada versión como una página separada y duplicada. Y ahí sí que el SEO multilingüe se desmorona antes de arrancar.
Tabla comparativa: plugin multilingüe propio vs. opciones comerciales
| Característica | Plugin propio con Claude Code | WPML | Weglot |
|---|---|---|---|
| Costo | USD 0 (tiempo de desarrollo) | USD 39-199/año | Desde USD 15/mes |
| Control sobre URLs | Total | Medio | Limitado |
| hreflang automático | Sí (custom) | Sí | Sí |
| Traducción de strings del theme | Manual (o con Claude API) | Integrado | Automático (con glosario) |
| Dependencia de servicios externos | Ninguna | Ninguna | Total (SaaS) |
| Mantenimiento | A cargo del equipo dev | Actualizaciones del plugin | Actualizaciones automáticas |
| Tiempo estimado de implementación | 3-8 horas con Claude Code | 1-2 horas | 30-60 minutos |

La tabla muestra algo que ya intuías: el plugin propio gana en control y costo a largo plazo, pierde en tiempo inicial y mantenimiento. Para un sitio chico con presupuesto ajustado, desarrollar tu propio plugin multilingüe gratuito con Claude Code es una decisión razonable si tenés a alguien en el equipo que sepa PHP y pueda mantenerlo. Si tu sitio tiene 50 plugins activos, contenido que cambia a diario y cero desarrolladores in-house, WPML o Weglot te van a doler en la billetera pero te ahorran dolores de cabeza.
¿Qué errores evitar al desarrollar un plugin multilingüe con Claude Code?
Después de revisar los posts de CodeMiner42 y de Javier Aguilar, y de meter mano yo mismo en un par de proyectos similares, estos son los errores que vi repetirse —y que te pueden costar un finde entero de debugging.
1. Asumir que Claude Code genera código de producción sin revisar. Claude Code es brillante para scaffolding y lógica de negocio, pero no conoce las particularidades de tu theme. Si le pedís que genere un filtro de idioma y tu theme tiene una función custom para obtener posts, Claude no lo sabe. Revisá cada hook, cada callback, y probá en un staging que se parezca lo más posible a producción. Si algo falla, iterá con Claude señalándole el error exacto —mejora rápido cuando le das feedback concreto, no genérico.
2. Olvidar que todos los idiomas deben compartir el mismo slug base. Si en español el slug es /plugin-multilingue-gratuito y en inglés ponés /free-multilingual-wordpress-plugin, el hreflang no va a hacer match y Google va a ignorar las etiquetas. La translationKey existe justamente para evitar este despelote —pero si no la usás de manera consistente en todos los archivos de contenido, perdiste. Ya lo cubrimos antes en la guía completa sobre wp-community.
3. No probar los enlaces internos en cada idioma. Un link a /contacto en la versión en español debería apuntar a /en/contact en la versión en inglés. Si tu plugin no reescribe las URLs internas según el idioma activo, el usuario hace clic y vuelve al idioma default sin querer. Esto se soluciona con un filtro sobre the_content que reemplace las URLs relativas —son 15 líneas pero si las omitís, la experiencia de usuario se cae a pedazos.
4. Descuidar la validación post-generación. El script validate-blog.js que mencionan en claudecode-lab.com revisa que las descripciones no estén truncadas a 80 caracteres porque Claude se comió la segunda mitad (pasa más seguido de lo que parece), que los snippets de código sean ejecutables, y que los CTAs no se hayan omitido en la traducción. Correlo siempre, no solo en la versión final —cada commit al repo de contenido debería disparar esta validación.
¿Cómo probar y desplegar el plugin multilingüe en producción?
El flujo que recomiendo (y que usé en proyectos con estructura similar) es este: desarrollo en local con WP Local o Laragon, pruebas de integración en un staging que clone la configuración real del servidor, y deploy a producción solo cuando los tests de validación pasan en los tres entornos.
El script de validación tiene que cubrir al menos cinco checks: que los slugs por idioma existan y no estén vacíos, que los hreflang se rendericen en el head sin errores de sintaxis, que la REST API devuelva el contenido filtrado por idioma correctamente (probalo con curl, no con el navegador solamente), que las redirecciones por idioma del navegador no generen loops infinitos, y que los enlaces internos apunten a la versión correcta del idioma activo.
¿Y el hosting? Si estás desarrollando un plugin que agrega consultas extra a la base de datos (cada post se busca por translationKey + idioma, y eso son joins o meta_queries adicionales), asegurate de que el servidor aguante. Un hosting WordPress como el de Donweb con LiteSpeed y caching a nivel servidor evita que esas queries extra te tiren abajo el tiempo de carga. No es magia: es tener un entorno donde tu plugin no compita por recursos con otros 30 sitios en el mismo servidor.
Una vez en producción, monitoreá Google Search Console durante las primeras dos semanas. Los errores de hreflang aparecen ahí, con la URL exacta que está fallando y el motivo (falta de reciprocidad, idioma no soportado, etc.). Corregilos apenas los veas —Google indexa cada vez más rápido en 2026 y un error de hreflang que persiste 72 horas ya te afecta el ranking en todos los idiomas.
Errores comunes al implementar tu plugin multilingüe gratuito
Más allá de los errores de desarrollo con Claude Code, hay un par de metidas de pata que veo seguido cuando un equipo implementa su primer plugin multilingüe propio. Son errores de concepto, no de código.
Creer que «multilingüe» es solo traducir los posts. Las categorías, los tags, los menúes de navegación, los textos del theme, los mensajes de error del formulario de contacto, el texto del botón de «Comprar» en WooCommerce —todo eso también tiene que estar traducido. Si solo traducís el contenido del blog, el 60% de la interfaz queda en el idioma default y la experiencia es inconsistente. Complementá con mostrar una guía de talles en WooCommerce.
No definir un idioma de fallback claro. ¿Qué pasa si alguien entra con el navegador en alemán y tu sitio solo tiene español e inglés? Si no definiste un fallback, el plugin va a mostrar contenido vacío o la homepage sin posts. Definí siempre un idioma default (el que usa la mayoría de tu audiencia) y redirigí ahí cuando el idioma detectado no esté disponible.
Usar traducción automática sin revisión humana. Claude puede traducir contenido aceptablemente bien, pero se manda errores sutiles en contexto cultural, modismos y términos técnicos. Si tu sitio vende servicios profesionales, una traducción con errores de ese tipo te hace quedar poco serio. La IA es para el primer borrador; la revisión, para un humano que hable el idioma destino con fluidez.
No versionar el contenido multilingüe junto con el código del plugin. Si los archivos de contenido (markdown, JSON o lo que uses) no están en el mismo repo que el plugin, vas a terminar con versiones desincronizadas. El equipo de contenido actualiza la versión en español, pero la traducción al inglés quedó congelada hace tres meses y nadie se enteró. Un solo repo con todo —código y contenido— evita este problema de raíz.
Preguntas Frecuentes
¿Cómo crear un plugin multilingüe gratuito para mi tema de WordPress?
Usando Claude Code desde la terminal, podés generar el scaffolding completo del plugin en cuestión de horas. Le pedís que analice tu theme actual, defina la arquitectura (custom post types con metadata de idioma o archivos markdown por idioma), y genere los hooks de WordPress necesarios para servir el contenido en el idioma detectado. El proceso completo está documentado por el equipo de CodeMiner42 en su blog técnico, incluyendo la implementación de REST API con filtrado por idioma y generación dinámica de hreflang.
¿Qué es Claude Code y cómo me ayuda a programar un plugin de traducción?
Claude Code es una herramienta CLI de Anthropic que permite interactuar con Claude desde la terminal para tareas de programación. Lee la estructura de tu proyecto WordPress, genera archivos PHP y JavaScript en las rutas correctas, y puede iterar sobre errores cuando le das feedback concreto. Para un plugin de traducción, te acelera la generación de custom post types, REST API endpoints, lógica de detección de idioma y etiquetas hreflang.
¿Se puede tener un plugin multilingüe sin pagar licencias?
Sí, totalmente. Si tu theme es custom y tenés control sobre los templates, desarrollar tu propio plugin multilingüe gratuito con asistencia de Claude Code te da control total sobre la arquitectura sin depender de WPML, Weglot ni ninguna suscripción. El costo es cero en licencias y el tiempo de desarrollo estimado va de 3 a 8 horas según la complejidad de tu sitio.
¿Cómo implementar etiquetas hreflang en un plugin multilingüe propio?
Enganchás la función en wp_head para que recorra las traducciones disponibles del post actual (agrupadas por translationKey) y genere un link rel=»alternate» hreflang=»xx» por cada idioma, más un x-default para la versión canónica. El sitemap también tiene que incluir estas alternativas. El plugin documentado por CodeMiner42 hace exactamente esto de forma dinámica.
¿Cuánto tiempo toma desarrollar un plugin multilingüe con Claude Code?
Según el caso documentado por CodeMiner42, entre 3 y 8 horas de trabajo incluyendo iteraciones, pruebas en local y ajustes de arquitectura. El scaffolding inicial con Claude Code se genera en minutos; el resto del tiempo se va en afinar la integración con el theme, probar la REST API, validar los hreflang y correr scripts de validación post-generación.
Conclusión
En 2026, desarrollar tu propio plugin multilingüe gratuito para WordPress es una alternativa viable y sensata si tenés un theme custom y acceso a un desarrollador (o a vos mismo con ganas de meter mano). Claude Code bajó la barrera de entrada: lo que antes requería tres días de escribir hooks y debuggear URLs ahora se resuelve en una tarde de iteración con un asistente que entiende WordPress.
El plugin que armó CodeMiner42 con REST API, hreflang dinámico y selector de idioma es prueba de que el approach funciona. Del lado del contenido, la estructura de archivos markdown por idioma con translationKey que documentó Javier Aguilar cierra el círculo: tenés un sistema multilingüe completo sin licencias, sin dependencia de SaaS externos, y con control total sobre cada aspecto del SEO.
No es para todos los proyectos. Si tu tiempo vale más que el costo de una licencia de WPML, pagala y olvidate. Pero si estás armando un sitio donde el control técnico, el presupuesto ajustado y la independencia de terceros son prioridad, esta es la ruta que toma cada vez más sentido. Probala en un staging, validá todo con un script automático, y cuando funcione, subila a un hosting que aguante las queries extra sin transpirar —eso hace la diferencia entre un sitio multilingüe rápido y uno que arrastra los pies.
Fuentes
- CodeMiner42 – Construindo um plugin WordPress multilíngue com Claude Code: artículo técnico que documenta el proceso completo de desarrollo del plugin multilingüe con REST API, hreflang y selector de idioma.
- Javier Aguilar – Claude Code Skills: Blog Writer: implementación de un skill de Claude Code para escritura bilingüe con estructura de archivos markdown por idioma y translationKey.
- ClaudeCode Lab – Blog CMS con Claude Code: flujo de validación post-generación con scripts automáticos para asegurar calidad de contenido multilingüe.
![[HELP] Free multilingual plugin for custom themes - ilustracion](https://wordpress.donweb.com/wp-content/uploads/2026/07/plugin-multilingue-gratuito-claude-code-wordpress-hero-1024x576.jpg)



