L'editor rimuove i tag <p>

28 feb 2011, 05:37:11
Visualizzazioni: 25.9K
Voti: 9

Come posso impedire all'editor di rimuovere i miei tag <p> e i "div vuoti (&nbsp;)" nelle pagine?

Dal momento che @scribu ha chiesto un esempio di codice, eccolo qui:

Input:

<p>testo</p>
<div>&nbsp;</div>

Output:

testo
6
Commenti

Perché i punti negativi?

Eeyore Eeyore
8 mar 2011 03:52:44

usa semplicemente questo plugin, ha un'opzione integrata per rimuovere automaticamente i tag p e br http://wordpress.org/extend/plugins/tinymce-advanced/

User User
3 ago 2011 13:54:33

Dai, sicuramente negli ultimi 8 anni deve esserci stata una soluzione a questo... considerando che lo sto sperimentando anch'io e non sembra esserci alcuna ragione per cui gli elementi <p> dovrebbero essere rimossi. Perché succede ancora?

Lee Lee
21 mag 2019 12:11:02

Se stai per aggiungere tag HTML, perché non usare direttamente l'Editor HTML?

Chip Bennett Chip Bennett
3 ago 2011 14:36:00

e come facciamo a farlo?

jeff jeff
30 set 2013 13:13:27

Per tua informazione, questo è quello che sto usando, e continua a rimuovere i tag <p> che racchiudono gli shortcode sul front end. Non c'è alcuna azione all'interno dello shortcode, ma è strano che scompaiano senza motivo.

Lee Lee
21 mag 2019 12:10:12
Mostra i restanti 1 commenti
Tutte le risposte alla domanda 7
1

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/>");                            
}
31 ago 2012 00:16:38
Commenti

Ahah, questa è Wordpress in poche parole.

qwerty qwerty
27 nov 2012 11:39:37
0

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>&nbsp;<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');
28 feb 2011 06:23:15
0

Aggiungi nel tuo functions.php

remove_filter ('the_content', 'wpautop');
remove_filter ('the_excerpt', 'wpautop');

Ma dovrai aggiungere manualmente i tag <p> e <br/>. Questi tag non vengono salvati nel database.

28 feb 2011 08:58:25
0

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.

29 giu 2015 23:31:53
0

È 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 &nbsp;, ma potresti chiederti se sono necessari e magari puoi risolvere con il css? Cerco solo di aiutare. Oppure usa l'hack (<b>&nbsp;<b/>) spiegato da @markratledge

16 nov 2017 21:53:22
0

Un po' necro, ma per il tag <p> puoi aggiungere una classe o magari un'altra proprietà.

es.

<p class="nothing-relevant">Foo</p>

non verrà rimosso (usando Gutenberg).

22 gen 2019 19:25:11
0
-1

Ho scoperto che se aggiungi una classe al tuo tag di paragrafo, WordPress non la rimuoverà. Non è nemmeno necessario avere del CSS per quella classe.

10 ott 2022 23:26:46