Ich weiß, dass dies hundertmal gefragt worden sein muss, aber ich habe eine Reihe von Lösungen ausprobiert, die ich finden konnte, aber keine scheint zu funktionieren.
Ich habe ein shortcode
das umschließt den Inhalt:
[important_note]Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam vel velit at ex congue aliquet.[/important_note]
Ich verwende die folgende Shortcode-Funktion in functions.php
:
function important_note( $atts, $content = null ) {
return '<div class="imp-note">'.$content.'</div>';
}
add_shortcode("important_note", "important_note");
Dies ist der resultierende HTML-Code:
<div class="imp-note">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<p></p>
<p>Nam vel velit at ex congue aliquet.</p>
</div>
Das Hauptproblem ist das Leere <p>
das ich versucht habe, mit diesen hier erwähnten Lösungen zu lösen: Entfernen Sie leere
-Tags aus WordPress-Shortcodes über eine PHP-Funktion und so weiter GitHub Dies scheint jedoch zu lösen <p>
Verpackung der shortcode
nicht der Inhalt der shortcode
.
Die erste Zeile ohne haben <p>
Wrapping ist auch etwas seltsam, was mich denken lässt, dass ich der Shortcode-Funktion Code hinzufügen sollte?
Vielen Dank im Voraus für jede Hilfe.
AKTUALISIEREN
Ok, also sieht dieses Stück Code so aus, als würde es den Trick machen:
remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 99);
add_filter( 'the_content', 'shortcode_unautop',100 );
Wie hier zu sehen: https://stackoverflow.com/a/21460343/1275525 und hier: http://www.paulund.co.uk/remove-line-breaks-in-shortcodes (Entfernen von wpautop() zum Inhalt nur in Shortcodes)
UND Der Inhalt im Shortcode muss so sein, nicht wie oben gezeigt:
[important_note]
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam vel velit at ex congue aliquet.
[/important_note]
Der Inhalt ist von den Shortcode-Tags getrennt. Dieser Shortcode gibt den folgenden HTML-Code aus:
<div class="imp-note">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Nam vel velit at ex congue aliquet.</p>
</div>
Wird bestätigen, ob es bei allen Shortcodes funktioniert …