Editor supprime les balises p

4

Comment empêcher l'éditeur de supprimer les balises <p> et les div "empty (& nbsp;)" sur les pages?

Étant donné que @scribu a demandé un exemple de code, voici:

Entrée:

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

Sortie:

text
    
posée Eeyore 28.02.2011 - 04:37

6 réponses

3

J'ai eu des problèmes avec TinyMCE Advanced. J'ai eu du mal avec ça pendant un moment. Enfin découvert une solution simple - Utilisez Shortcodes!

Placez ce code dans le fichier functions.php et entrez [br] à l'endroit où vous souhaitez qu'une balise br apparaisse.

add_shortcode("br", "br_tag");

function br_tag(){
        return("<br/>");                            
}
    
réponse donnée Tapefreak 30.08.2012 - 23:16
1

1) Essayez plusieurs plug-ins différents qui désactivent le formatage et arrêtent la suppression intégrée des paragraphes et des espaces supplémentaires dans WP: enlace

2) Vous pouvez tromper WP en ajoutant un saut de paragraphe en utilisant <b>&nbsp;<b/> dans l'éditeur html. C'est un espace insécable dans les balises <b> . Vous ne pourrez pas le voir dans l'éditeur visuel, ajoutez-le donc dans l'éditeur htnl. C'est moche, mais ça fonctionne sans avoir à désactiver complètement le formatage.

3) Vous pouvez également le faire dans le fichier functions.php, puis envelopper le texte que vous ne voulez pas formater avec les balises <!-- noformat on --> et <!-- 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

Je sais qu’il s’agit d’un forum assez ancien ... j’en ai rencontré beaucoup sur cette question de l'éditeur visuel enlevant les balises lors du changement d'onglets ... J'ai simplement suivi ce lien: enlace

et installé TinyMCE Advanced ... tout fonctionne comme un charme et j’ai maintenant plus de fonctionnalités à ajouter à mon éditeur visuel.

    
réponse donnée Katie 29.06.2015 - 22:31
0

Si vous envisagez d'ajouter des balises HTML , pourquoi ne pas utiliser simplement Éditeur HTML ?

    
réponse donnée Chip Bennett 03.08.2011 - 13:36
0

Ajoutez votre functions.php

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

Mais vous ne devez pas ajouter <p> et <br/> manuellement. Ces balises ne sont pas enregistrées dans la base de données.

    
réponse donnée Guru 2.0 28.02.2011 - 07:58
0

C'est une question plus ancienne, mais cela pourrait vous aider ou aider quelqu'un d'autre pour une partie:

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

    return $data;
}, 10, 2);

Ceci ajoute les balises de paragraphe avant de sauvegarder. Et bien sûr, l'éditeur comprend toujours comment le traiter;)

Cela ne peut pas vous aider avec &nbsp; , mais vous pouvez vous demander s’ils sont nécessaires et peut-être que vous pourrez résoudre ce problème avec css? J'essaye juste d'aider. Ou utilisez le hack ( <b>&nbsp;<b/> ) expliqué par @markratledge

    
réponse donnée Rolf 16.11.2017 - 20:53

Lire d'autres questions sur les étiquettes