Passare dall'editor HTML a quello Visuale e viceversa elimina completamente il contenuto della pagina

9 apr 2011, 18:22:49
Visualizzazioni: 2.07K
Voti: 1

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

3
Commenti

Usare un template di pagina invece? Evita completamente il problema dell'editor che rimuove l'iframe.

t31os t31os
9 apr 2011 19:49:31

Non è specifico per le pagine - la stessa cosa accadrebbe con un articolo. Ho rimosso il tag page e aggiunto un tag html.

Dougal Campbell Dougal Campbell
10 apr 2011 16:35:22

Sì, mi rendo conto di questo, il mio punto era che questo utente vuole specificamente renderizzare un iframe in una pagina, e l'uso di un template di pagina con nome eviterebbe completamente il problema.

t31os t31os
11 apr 2011 15:00:24
Tutte le risposte alla domanda 2
2

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.

9 apr 2011 23:38:47
Commenti

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 red4d
10 apr 2011 21:55:19

@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/

Marcus Pope Marcus Pope
1 set 2012 01:12:39
1

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.

10 apr 2011 15:19:41
Commenti

Questa è la mia soluzione preferita. Dovresti impacchettarla come plugin e caricarla nella directory delle estensioni ;) Sembra funzionare piuttosto bene (l'ho aggiunta al file functions.php invece di creare un plugin). Grazie!

red4d red4d
10 apr 2011 21:52:48