Editor remove as tags p

4

Como faço para impedir que o editor retire minhas tags <p> e "empty (& nbsp;)" nas páginas?

Como @scribu pediu um código de exemplo aqui, ele é:

Entrada:

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

Saída:

text
    
por Eeyore 28.02.2011 / 04:37

6 respostas

3

Eu tive problemas com o TinyMCE Advanced. Eu lutei com isso por um tempo. Finalmente descobriu uma solução simples - Use Shortcodes!

Coloque este código em functions.php e digite [br] onde quer que uma tag br apareça.

add_shortcode("br", "br_tag");

function br_tag(){
        return("<br/>");                            
}
    
por Tapefreak 30.08.2012 / 23:16
1

1) Tente alguns plugins diferentes que desativam a formatação e impeçam a remoção de parágrafos extras e espaços em branco do WP: enlace

2) Você pode enganar o WP para adicionar uma quebra de parágrafo usando <b>&nbsp;<b/> no editor de html. É um espaço sem quebra nas tags <b> . Você não poderá vê-lo no editor visual, então adicione-o no editor htnl. É feio, mas funciona sem a necessidade de desativar totalmente a formatação.

3) Você também pode fazer isso em functions.php e depois quebrar o texto que você não deseja que seja formatado com as tags <!-- 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)));      //Apply both functions (faster)

        $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)));      //Apply both functions (faster)

    //To remove the tags
    $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');
    
por markratledge 28.02.2011 / 05:23
1

Eu sei que este é um fórum bastante antigo ... Eu me deparei com muitos sobre esta questão do editor visual descascando tags quando switiching guias ... Eu simples seguiu este link: enlace

e instalado o TinyMCE Advanced ... tudo está funcionando como um encanto e agora tenho mais recursos para poder adicionar ao meu editor visual.

    
por Katie 29.06.2015 / 22:31
0

Se você estiver adicionando tags HTML , por que não usar apenas o Editor HTML ?

    
por Chip Bennett 03.08.2011 / 13:36
0

Adicione seu functions.php

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

Mas você não precisa adicionar <p> e <br/> manualmente. Essas tags não são salvas no banco de dados.

    
por Guru 2.0 28.02.2011 / 07:58
0

É uma pergunta mais antiga, mas isso pode ajudar você ou outra pessoa em uma parte:

add_filter('wp_insert_post_data', function ($data, $postarr) {
    $data['post_content'] = wpautop($data['post_content']);

    return $data;
}, 10, 2);

Isso adiciona as tags de parágrafo antes de salvar. E, claro, o editor ainda entende como processá-lo;)

Ele não pode ajudá-lo com &nbsp; , mas você poderia se perguntar se eles são necessários e talvez você possa resolver isso com css? Apenas tentando ajudar. Ou use o hack ( <b>&nbsp;<b/> ) explicado por @markratledge

    
por Rolf 16.11.2017 / 20:53

Tags