wake-up-neo.net

entferne nur bestimmte Tags (wie <p>), aber behalte andere Tags (wie <br/>)

Ich weiß, dass es einfach ist, Wordpress daran zu hindern, sowohl p- als auch br-Tags hinzuzufügen:

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

aber ich möchte, dass Wordpress weiterhin <br> hinzufügt, wenn ein Zeilenumbruch auftritt. Ich benutze nur einen Texteditor, der visuelle Editor ist deaktiviert. Bis zum letzten Update auf Wordpress 4.7 hat es einwandfrei funktioniert - jetzt werden einige abschließende p-Tags hinzugefügt, ohne sie wie </p> zu öffnen.

sogar versucht this Plugin, aber es deaktiviert auch br-Tags.

Gibt es eine Möglichkeit, nur p Tags zu deaktivieren, nicht br Tags im Post-Inhalt? Ich kann im Internet nichts finden, was etwas über eine Lösung aussagt.

3
whitelord

Sie sollten diese Aktionen niemals deaktivieren (was Sie sagen). Fügen Sie stattdessen add_filter('the_content', 'MyFilter', 88 ); ein und erstellen Sie eine solche Funktion:

function MyFilter($content){
    $tags = array( 'p', 'span');
    ///////////////////////////////////////////////////
    ///////// HERE INSERT ANY OF BELOW CODE  //////////
    ///////////////////////////////////////////////////
    return $content;
}

======== METHODE 1 ========

$content= preg_replace( '#<(' . implode( '|', $tags) . ')(.*|)?>#si', '', $content);
$content= preg_replace( '#<\/(' . implode( '|', $tags) . ')>#si', '', $content);

======== METHODE 2 ======

foreach ($tags as $tag) {
    $content= preg_replace('#<\s*' . $tag . '[^>]*>.*?<\s*/\s*'. $tag . '>#msi', '', $content);
}

======== METHODE 3 ========

DOMObjekt (bevorzugt): https://stackoverflow.com/a/31380542/2377343

6
T.Todua

Der Filter "the_content" wird verwendet, um den Inhalt des Posts zu filtern, bei dem die Filterfunktion in your_prefix_ptagfix das Suchen der <p>-Tags vor und nach den Shortcodes erzwingt, die Tags öffnen.

Fügen Sie den folgenden Code zu Ihrer Funktionsdatei hinzu und teilen Sie mir mit, ob dies hilfreich ist.

add_action( 'after_setup_theme', 'your_prefix_theme_setup' );
function your_prefix_theme_setup(){
    add_filter( 'the_content', 'your_prefix_ptagfix' );

}

function your_prefix_ptagfix($content){   
    $array = array (
        '<p>[' => '[', 
        ']</p>' => ']',
    );

    $content = strtr($content, $array);
    return $content;
}
0
Maqk