it-swarm.com.de

Editor entfernt <p> Tags

Wie verhindere ich, dass der Editor meine <p>-Tags und "leere (& nbsp;)" Divs auf Seiten entfernt?

Da @scribu hier nach einem Beispielcode gefragt hat, lautet dieser:

Eingang:

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

Ausgabe:

text
5
Eeyore

Ich hatte Probleme mit TinyMCE Advanced. Ich hatte eine Weile damit zu kämpfen. Endlich eine einfache Lösung entdeckt - Verwenden Sie Shortcodes!

Fügen Sie diesen Code in die Datei functions.php ein und geben Sie [br] an der Stelle ein, an der ein br-Tag erscheinen soll.

add_shortcode("br", "br_tag");

function br_tag(){
        return("<br/>");                            
}
4
Tapefreak

1) Probieren Sie einige verschiedene Plugins aus, die die Formatierung deaktivieren und das in WP integrierte Entfernen zusätzlicher Absätze und Leerzeichen stoppen: http://wordpress.org/extend/plugins/search.php?q=formatting&sort=

2) Sie können WP durch die Verwendung von <b>&nbsp;<b/> im HTML-Editor zum Hinzufügen eines Absatzumbruchs verleiten. In <b>-Tags wird kein Leerzeichen verwendet. Sie können es nicht im visuellen Editor sehen, also fügen Sie es im HTML-Editor hinzu. Es ist hässlich, aber es funktioniert, ohne dass die Formatierung vollständig deaktiviert werden muss.

3) Sie können dies auch in functions.php tun und dann den Text, den Sie nicht formatieren möchten, mit den Tags <!-- noformat on --> und <!-- noformat off --> umbrechen.

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
markratledge

Ich weiß, dass dies ein ziemlich altes Forum ist ... Ich bin auf viele in dieser Ausgabe von Visual Editor-Stripping-Tags gestoßen, als ich Tabs gewechselt habe ... Ich bin einfach diesem Link gefolgt: http://rubayathasan.com/reviews/enabling -line-break-in-wordpress/# comment-1349250

und TinyMCE Advanced installiert ... alles funktioniert wie ein Zauber und ich habe jetzt mehr Funktionen, die ich meinem visuellen Editor hinzufügen kann.

1
Katie

Fügen Sie in Ihrem functions.php

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

Sie müssen jedoch keinen <p> und <br/> manuell hinzufügen. Diese Tags werden nicht in der Datenbank gespeichert.

0
Guru 2.0

Es ist eine ältere Frage, aber dies könnte Ihnen oder jemand anderem für einen Teil helfen:

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

    return $data;
}, 10, 2);

Dadurch werden die Absatz-Tags vor dem Speichern hinzugefügt. Und natürlich versteht der Redakteur immer noch, wie man es verarbeitet;)

Es kann dir nicht mit &nbsp; helfen, aber du könntest dich fragen, ob sie notwendig sind und vielleicht kannst du das mit CSS lösen? Ich versuche nur zu helfen. Oder verwenden Sie den von @markratledge erläuterten Hack (<b>&nbsp;<b/>)

0
Rolf

Wenn Sie HTML-Tags hinzufügen möchten, verwenden Sie einfach den HTML-Editor .

0
Chip Bennett

Ein bisschen nekrotisch, aber für das <p>-Tag können Sie eine Klasse oder vielleicht eine andere Eigenschaft hinzufügen.

z.B.

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

wird nicht abgestreift (mit Gutenberg).

0
Adam Marshall