Cómo evitar que TinyMCE elimine las etiquetas span
Estoy publicando HTML generado por Word en WordPress a través de XMLRPC. Antes de ir a post.php, el formato se preserva correctamente en la base de datos. TinyMCE hace su magia y pierdo bastantes detalles de formato.
El principal problema que estoy viendo es que la etiqueta <span>
con información de estilo que rodea otros elementos es eliminada. He verificado que estas etiquetas son efectivamente eliminadas por TinyMCE y no por Kses.
¿Hay alguna manera de evitar que TinyMCE altere el HTML? He probado
add_filter('tiny_mce_before_init', 'tinymce_init');
function tinymce_init( $init ) {
$init['extended_valid_elements'] .= ', span[style|id|nam|class|lang]';
$init['verify_html'] = false;
return $init;
}
lo cual no ayudó. Según la documentación de TinyMCE, "verify_html"
Esta opción habilita o deshabilita la funcionalidad de limpieza de elementos. Si configuras esta opción como falsa, se omitirá toda la limpieza de elementos, pero otras funcionalidades de limpieza como la conversión de URL seguirán ejecutándose.

No pude encontrar la opción extended_valid_elements
en el panel de configuración de TinyMCE avanzado, pero agregar lo siguiente a mi functions.php
lo resolvió:
function override_mce_options($initArray) {
$opts = '*[*]';
$initArray['valid_elements'] = $opts;
$initArray['extended_valid_elements'] = $opts;
return $initArray;
} add_filter('tiny_mce_before_init', 'override_mce_options');

Casi siempre uso el plugin TinyMCE Advanced - hay una página de administración (Ajustes->Configuración TinyMCE) que te permite añadir etiquetas soportadas usando la opción extended_valid_elements
. Simplemente añade span
y cualquier otra etiqueta que no quieras que sea eliminada y ¡disfruta!

Gracias, TinyMCE Advanced hace exactamente lo mismo que mi código anterior para agregar extended_valid_elements. Pero lo haré con el plugin. Tal vez hay un error en alguna parte de mi código.

Instálalo y pruébalo - si funciona, entonces el problema está en tu código. Si no, algo más lo está sobrescribiendo a nivel de plugin o tema.

No pude encontrar un lugar en la última versión de TinyMCE Advanced para agregar elementos

Si utilizas el plugin TinyMCE Advanced, existe un complemento llamado TinyMCE Advanced Configuration, con el cual puedes cambiar los ajustes de configuración, como la opción extended_valid_elements.
