feat(api): endpoint para enlazar traducciones Polylang (#222) #225
Reference in New Issue
Block a user
Delete Branch "feat/crear-traduccion-api"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Añade
POST /wp-json/fea/v1/crear-traduccion, replicandoscripts/fea_translate_helper.php::createpara que Inma/Mixbot puedan crear y enlazar traducciones (idioma + grupo Polylang + categoría mapeada) sin acceso de shell al WordPress, cerrando el hueco que quedaba anotado endocs/guia-traduccion-autoservicio-inma-mixbot.md.QA de Claudix contra el WordPress local (
wordpress-web), con un post ES desechable (categoría 6 = cartasemana) y una contraseña de aplicación temporal, todo borrado después:pll_get_post_languagedaes/enen cada post,pll_get_post_translations(es_id)devuelve el grupo{es: 56426, en: 56427}, y la categoría se mapeó6 → 3077(cartasemana ES → EN) tal como predice el helper local.es_id/langdevuelve 200 con el mismotranslation_idycreated:false— no duplica.Fix incluido en este PR (commit
3fb5a3b): el test de integración original fallaba concurl: (26)porque-F 'content=<p>...'hace que curl interprete el<inicial como "leer el valor desde este fichero" en vez de como HTML literal. Cambiado a--form-stringpara ese campo — no toca el endpoint, solo el test.⚠️ Este endpoint toca la lógica central de multiidioma (Polylang) del sitio — antes de considerarlo definitivo conviene el mismo tipo de smoke test real en prod que se hizo para
subir-audio(#224), con un post desechable, antes de que Inma/Mixbot lo usen contra contenido real.Ref #222.
curl -F trata un valor que empieza por "<" como "leer desde este fichero", no como el literal HTML que se pretendía enviar (falla con curl: (26) Failed to open/read local data from file). --form-string evita esa lectura especial. Verificado por Claudix (QA) contra wordpress-web local: con el fix, los 8 casos pasan y Polylang enlaza idioma/grupo/categoría correctamente (56426 es -> 56427 en, grupo {es:56426,en:56427}, categoria 6->3077).