Passare dall'editor HTML a quello Visuale e viceversa elimina completamente il contenuto della pagina
Ho una pagina (non un articolo del blog) in cui devo incorporare un iframe (serve per "integrare" il catalogo prodotti di un servizio esterno). Ho aggiunto il codice dell'iframe nell'editor HTML e ho salvato la pagina. Ho visualizzato la pagina e tutto funzionava.
Sono tornato nell'editor e sono passato dalla modalità HTML alla scheda dell'editor Visuale, ho aggiunto una riga di testo, poi mi sono ricordato che dovevo aggiungere un attributo al codice dell'iframe. Quindi sono tornato alla scheda HTML.
Quando ho fatto questo, il post era completamente vuoto. Tutto ciò che avevo inserito nell'editor, sia in HTML che no, era stato eliminato e il post era vuoto, come se l'avessi appena creato. Ho dovuto ripristinare una revisione precedente per recuperarlo.
Finora la soluzione è stata disabilitare l'editor Visuale, ma ho un partner non tecnico e questa non è una soluzione ideale a lungo termine.
Esiste un modo per controllare questo comportamento di WordPress? Sto usando WordPress 3.1.1
Grazie

L'editor di WordPress gestisce male gli iFrame o l'HTML avanzato quando si passa dall'editor HTML a quello visivo (ho sperimentato questo problema molte volte).
La soluzione migliore è aggiungere un template di pagina (page-{id}.php) con l'iframe, oppure usare un plugin che aggiunga shortcode per gli iFrame come il seguente:
http://wordpress.org/extend/plugins/easy-iframe-loader/
Questo sarebbe particolarmente utile in un ambiente dove persone non tecniche modificano i post.

Questa era la mia seconda scelta – non l'ho scelta principalmente perché non volevo utilizzare gli shortcode.
C'è qualcun altro oltre a me che vorrebbe che TinyMCE/WordPress semplicemente prendesse l'HTML che inserisci e lo lasciasse così com'è?

@red4d - Il mio plugin fa esattamente quello che vorresti che WordPress facesse. Desideravo lo stesso comportamento, proprio come te, e ho scoperto che era possibile con molto lavoro sporco nel Core di WP - http://wordpress.org/extend/plugins/preserved-html-editor-markup/

Ho avuto questo codice in un plugin personalizzato locale per un po' di tempo. Oppure potresti semplicemente inserirlo nel functions.php
del tuo tema:
// Consenti iframe in TinyMCE
function tinymce_add_iframe( $arr = array() ) {
$extra = 'iframe[id|class|title|style|align|frameborder|height|longdesc|marginheight|marginwidth|name|scrolling|src|width]';
if ( isset( $arr['extended_valid_elements'] ) ) {
// aggiunge al valore esistente
$arr['extended_valid_elements'] .= ',' . $extra;
} else {
// imposta il valore
$arr['extended_valid_elements'] = $extra;
}
return $arr;
}
add_filter('tiny_mce_before_init','tinymce_add_iframe');
Questo dice a TinyMCE (l'editor visivo) di consentire il tag iframe
e tutti i suoi attributi.
