Editor elimina las etiquetas p

4

¿Cómo puedo evitar que el editor elimine mis etiquetas <p> y los archivos "vacíos (& nbsp;)" en las páginas?

Desde que @scribu solicitó un código de ejemplo aquí está:

Entrada:

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

Salida:

text
    
pregunta Eeyore 28.02.2011 - 04:37

6 respuestas

3

Tuve problemas con TinyMCE Advanced. Luché con esto por un tiempo. Finalmente descubrí una solución simple - ¡Usa Shortcodes!

Coloque este código en functions.php e ingrese [br] donde quiera que aparezca una etiqueta br.

add_shortcode("br", "br_tag");

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

1) Pruebe algunos complementos diferentes que deshabilitan el formato y detienen el borrado de párrafos y espacios en blanco integrados de WP: enlace

2) Puedes engañar a WP para que agregue un salto de párrafo usando <b>&nbsp;<b/> en el editor html. Es un espacio ininterrumpido en las etiquetas <b> . No podrá verlo en el editor visual, así que agréguelo en el editor htnl. Es feo, pero funciona sin necesidad de deshabilitar completamente el formato.

3) También puede hacer esto en functions.php y luego ajustar el texto que no desea que tenga el formato con las etiquetas <!-- noformat on --> y <!-- 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');
    
1

Sé que este es un foro bastante antiguo ... Me he topado con muchos en este tema del editor visual que elimina las etiquetas al intercambiar pestañas ... Simplemente seguí este enlace: enlace

e instalé TinyMCE Advanced ... todo funciona como un encanto y ahora tengo más funciones para poder agregar a mi editor visual.

    
respondido por el Katie 29.06.2015 - 22:31
0

Añade tu functions.php

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

Pero tienes que agregar no <p> y <br/> manualmente. Estas etiquetas no se guardan en la base de datos.

    
respondido por el Guru 2.0 28.02.2011 - 07:58
0

Es una pregunta antigua, pero esto podría ayudarlo a usted oa alguien más en una parte:

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

    return $data;
}, 10, 2);

Esto agrega las etiquetas de párrafo antes de guardar. Y, por supuesto, el editor aún entiende cómo procesarlo;)

No puede ayudarte con &nbsp; , pero podrías preguntarte si son necesarios y tal vez puedas resolverlo con css. Sólo trato de ayudar. O use el hack ( <b>&nbsp;<b/> ) explicado por @markratledge

    
respondido por el Rolf 16.11.2017 - 20:53
0

Si vas a agregar etiquetas HTML , ¿por qué no utilizar el Editor HTML ?

    
respondido por el Chip Bennett 03.08.2011 - 13:36

Lea otras preguntas en las etiquetas