Trecerea de la Editorul HTML la cel Vizual și Înapoi Șterge Complet Conținutul Paginii

9 apr. 2011, 18:22:49
Vizualizări: 2.07K
Voturi: 1

Am o pagină (nu o postare de blog) pe care trebuie să embedez un iframe (pentru a "integra" catalogul de produse al unui serviciu extern). Am adăugat codul iframe în editorul HTML raw și am salvat pagina. Am vizualizat pagina, totul a funcționat.

M-am întors în editor și am trecut de la editorul HTML raw la cel Vizual, am adăugat o linie de text, apoi mi-am amintit că trebuie să adaug un atribut la codul iframe. Așa că am revenit la fila HTML raw.

Când am făcut acest lucru, postarea este complet goală. Tot ce am introdus în editor, fie în HTML raw sau nu, a fost șters și postarea este goală, ca și cum aș fi creat-o de la zero. A trebuit să revin la o versiune anterioară pentru a o recupera.

Până acum soluția a fost să dezactivez editorul Vizual, dar am un partener non-tehnic și aceasta nu este o soluție ideală pe termen lung.

Există vreo modalitate de a controla acest comportament al WordPress? Folosesc WordPress 3.1.1

Mulțumesc

3
Comentarii

Folosește un șablon de pagină în schimb? Evită întreaga problemă a editorului care elimină iframe-ul.

t31os t31os
9 apr. 2011 19:49:31

Aceasta nu este specifică paginilor - același lucru s-ar întâmpla și cu un articol. Am eliminat tag-ul page și am adăugat un tag html.

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

Da, îmi dau seama de asta, ideea mea era că acest utilizator dorește să afișeze în mod specific un iframe într-o pagină, iar utilizarea unui șablon de pagină numit ar evita complet problema.

t31os t31os
11 apr. 2011 15:00:24
Toate răspunsurile la întrebare 2
2

Editorul WordPress are o gestionare slabă a iFrame-urilor sau a HTML-ului avansat când se trece între editorul HTML și cel Vizual (am întâlnit această problemă de multe ori).

Cea mai bună soluție este fie să adăugați un șablon de pagină (page-{id}.php) cu iframe-ul, fie să folosiți un plugin care adaugă shortcode-uri pentru iFrame, cum ar fi următorul:

http://wordpress.org/extend/plugins/easy-iframe-loader/

Acesta ar fi deosebit de util într-un mediu unde postările sunt editate de persoane ne-tehnice.

9 apr. 2011 23:38:47
Comentarii

Aceasta a fost a doua mea alegere -- nu am optat pentru ea în principal pentru că nu am vrut să folosesc shortcode-uri.

Mai este cineva în afară de mine care își dorește ca TinyMCE/WordPress să ia pur și simplu HTML-ul pe care îl introduci și să-l lase în pace?

red4d red4d
10 apr. 2011 21:55:19

@red4d - Plugin-ul meu va face exact ceea ce îți dorești tu ca WordPress să facă. Am dorit același comportament, la fel ca tine, și am descoperit că este posibil cu multă muncă asiduă în nucleul WP - http://wordpress.org/extend/plugins/preserved-html-editor-markup/

Marcus Pope Marcus Pope
1 sept. 2012 01:12:39
1

Am avut acest cod într-un plugin personalizat local de ceva vreme. Sau îl puteți include direct în functions.php-ul temei dumneavoastră:

// Permite iframe în 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'] ) ) {
    // adaugă la valoarea existentă
    $arr['extended_valid_elements'] .= ',' . $extra;
  } else {
    // setează valoarea
    $arr['extended_valid_elements'] = $extra;
  }

  return $arr;
}

add_filter('tiny_mce_before_init','tinymce_add_iframe');

Acest cod instruiește TinyMCE (editorul vizual) să permită tag-ul iframe și toate atributele sale.

10 apr. 2011 15:19:41
Comentarii

Aceasta este soluția mea preferată. Ar trebui să împachetezi asta ca un plugin și să-l încarci în directorul de extensii ;) Pare să funcționeze destul de bine (eu l-am adăugat în functions.php în loc să creez un plugin). Mulțumesc!

red4d red4d
10 apr. 2011 21:52:48