Mantener el formato HTML al cambiar entre editor Visual y HTML
He estado buscando una solución que me permita editar código HTML y que este se mantenga después de cambiar al editor Visual y volver.
He probado varias cosas sin éxito:
- el plugin wp-no-format
- el plugin Raw HTML
- ingresar todo mi HTML en una sola línea
Si solo yo estuviera administrando el contenido, desactivaría el editor Visual. Pero como tengo varios administradores de contenido y páginas que contienen HTML (formularios, por ejemplo) y contenido que necesitan editar, esa no es una opción.
Cualquier sugerencia será muy apreciada.

Sé exactamente cómo te sientes, y lamentablemente este problema está arraigado en el código núcleo de WordPress, no en TinyMCE o debido a problemas de compatibilidad del navegador. Escribí un plugin que te permite formatear el marcado HTML en el editor HTML, cambiar entre él y la pestaña Visual sin afectar el código fuente, y hacer cambios en la pestaña Visual sin romper el formato HTML original...
http://wordpress.org/extend/plugins/preserved-html-editor-markup/
También conserva las indentaciones con tabulaciones - solo 4 espacios :( - y mejora la compatibilidad con HTML5.
El único "inconveniente" es que desactiva wpautop. Pongo inconveniente entre comillas porque algunas personas odian que el editor envuelva etiquetas p alrededor de su contenido, como resultado el editor Visual usará etiquetas br para los retornos de carro - por lo que quizás necesites ajustar tus hojas de estilo.
¡Disfrútalo!

He actualizado el plugin con algunas funciones que solucionan el problema de no wpautop. Ahora el editor visual se puede configurar para inyectar etiquetas p o etiquetas br o ambas (dos saltos de línea consecutivos crean una etiqueta p). Y admite javascript y css en línea. En la versión 1.5, que se lanzará pronto, también admitirá bloques de código javascript. Si quieres que tu marcado se vea como lo escribiste, definitivamente es el plugin que debes usar. Nada de lo que he probado se acerca.

Muchas gracias, esta es la única solución que he encontrado que hace que el editor visual (después de guardar) no cambie el HTML.

Puedes probar estos plugins:
TinyMCE Advanced tiene una configuración para Evitar que se eliminen las etiquetas <p>
y <br />
al guardar y mostrarlas en el editor HTML

Si solo hay secciones de código que no quieres que se modifiquen, podrías almacenar ese HTML sensible / embed / etc. en campos personalizados.
Usando este plugin de shortcode, podrías incluir los campos personalizados en formato RAW dentro de cualquier entrada, página o incluso widget con algo como: [include "nombre de mi campo personalizado"]. También puede extraer fragmentos comunes de otras publicaciones con algo como [include global="shared_code_menu"].
Es una alternativa económica y tiene limitaciones, pero es ligera y directa.

El siguiente plugin funcionó para mí.

Añade esto a tu functions.php
function wp_tiny_mce_sanitize_fix( $init )
{
$init['extended_valid_elements'] = 'div[*], article[*], span[*], p[*]';
$init['remove_linebreaks'] = false;
$init['convert_newlines_to_brs'] = true;
$init['remove_redundant_brs'] = false;
return $init;
}
add_filter( 'tiny_mce_before_init', 'wp_tiny_mce_sanitize_fix' );

Vale, ahora pasemos esto a una respuesta. ¿Quieres algo como esto?
-Título-
Artículo de ejemplo
-Contenido-
lalalalalalalalalalalala
<div><a href="blah.com">Blah</a></div>
Una lista de resaltadores de sintaxis
- SyntaxHighlighter TinyMCE Button
- WP SyntaxHighligter
- RBCODE
- Resultados de búsqueda de WordPress Extend

Mmm, honestamente no estoy seguro de lo que intentas transmitir con esa respuesta. ¿Podrías explicar un poco más? ¿Entiendes la naturaleza del problema que estoy tratando de resolver?

Te pregunté si querías mostrar el HTML y dijiste que sí. Eso es exactamente lo que hace un resaltador de sintaxis. Si no es lo que buscas, lo siento, pero así lo entendí. ¿Estás intentando usar HTML personalizado dentro de una publicación para cambiar su apariencia?

El problema que estoy tratando de resolver: 1) ingresar HTML en la Vista HTML. 2) cambiar a Vista de Diseño. 3) volver a la Vista HTML. El HTML ha sido modificado cuando no quiero que lo sea.
