L'editor rimuove i tag <p>
Come posso impedire all'editor di rimuovere i miei tag <p>
e i "div vuoti ( )" nelle pagine?
Dal momento che @scribu ha chiesto un esempio di codice, eccolo qui:
Input:
<p>testo</p>
<div> </div>
Output:
testo

Ho avuto problemi con TinyMCE Advanced. Ho lottato con questo problema per un po'. Alla fine ho scoperto una soluzione semplice: utilizzare gli Shortcode!
Inserisci questo codice nel file functions.php e usa [br] dove vuoi che appaia un tag br.
add_shortcode("br", "br_tag");
function br_tag(){
return("<br/>");
}

1) Prova alcuni plugin diversi che disabilitano la formattazione e impediscono la rimozione automatica dei paragrafi e degli spazi bianchi da parte di WordPress: http://wordpress.org/extend/plugins/search.php?q=formatting&sort=
2) Puoi ingannare WordPress per aggiungere un'interruzione di paragrafo utilizzando <b> <b/>
nell'editor HTML. È uno spazio unificatore (non-breaking space) all'interno di tag <b>
. Non sarai in grado di vederlo nell'editor visuale, quindi aggiungilo nell'editor HTML. Non è elegante, ma funziona senza dover disabilitare completamente la formattazione.
3) Puoi anche fare questo nel file functions.php e poi racchiudere il testo che non vuoi formattare con i tag <!-- noformat on -->
e <!-- noformat off -->
.
function newautop($text)
{
$newtext = "";
$pos = 0;
$tags = array('<!-- noformat on -->', '<!-- noformat off -->');
$status = 0;
while (!(($newpos = strpos($text, $tags[$status], $pos)) === FALSE))
{
$sub = substr($text, $pos, $newpos-$pos);
if ($status)
$newtext .= $sub;
else
$newtext .= convert_chars(wptexturize(wpautop($sub))); //Applica entrambe le funzioni (più veloce)
$pos = $newpos+strlen($tags[$status]);
$status = $status?0:1;
}
$sub = substr($text, $pos, strlen($text)-$pos);
if ($status)
$newtext .= $sub;
else
$newtext .= convert_chars(wptexturize(wpautop($sub))); //Applica entrambe le funzioni (più veloce)
//Per rimuovere i tag
$newtext = str_replace($tags[0], "", $newtext);
$newtext = str_replace($tags[1], "", $newtext);
return $newtext;
}
function newtexturize($text)
{
return $text;
}
function new_convert_chars($text)
{
return $text;
}
remove_filter('the_content', 'wpautop');
add_filter('the_content', 'newautop');
remove_filter('the_content', 'wptexturize');
add_filter('the_content', 'newtexturize');
remove_filter('the_content', 'convert_chars');
add_filter('the_content', 'new_convert_chars');

So che questo è un forum piuttosto vecchio... mi sono imbattuto in molti thread riguardanti questo problema dell'editor visuale che rimuove i tag quando si cambia scheda... Ho semplicemente seguito questo link: http://rubayathasan.com/reviews/enabling-line-break-in-wordpress/#comment-1349250
e ho installato TinyMCE Advanced... ora tutto funziona perfettamente e ho molte più funzionalità da aggiungere al mio editor visuale.

È una domanda vecchia, ma questo potrebbe aiutarti o aiutare qualcun altro per una parte:
add_filter('wp_insert_post_data', function ($data, $postarr) {
$data['post_content'] = wpautop($data['post_content']);
return $data;
}, 10, 2);
Questo aggiunge i tag di paragrafo prima del salvataggio. E ovviamente l'editor comprende ancora come elaborarlo ;)
Non può aiutarti con
, ma potresti chiederti se sono necessari e magari puoi risolvere con il css? Cerco solo di aiutare. Oppure usa l'hack (<b> <b/>
) spiegato da @markratledge
