it-swarm.com.de

Entfernen Sie wpautop aus dem Shortcode-Inhalt/entfernen Sie Leerzeichen in der Pufferung

Ich verwende das Mailchimp-Plugin ( http://wordpress.org/extend/plugins/mailchimp/ ) und es verfügt über einen Shortcode, der die Ausgabepufferung verwendet, um den Code des Widgets zu erfassen und in den Inhalt einzuspucken. Der Widget-Code hat jedoch viel Leerraum, so dass die_content-Filter nutzlose Zeilenumbrüche (wie nach versteckten Eingaben) und leere p-Tags überall auslösen ... was ihn unbrauchbar macht. Ich entferne den Shortcode, um meinen eigenen hinzuzufügen, aber ich bin nicht sicher, was ich tun soll, um zu verhindern, dass der WordPress-Wpautop-Filter verrückt wird. Mein erster Gedanke war, die Leerzeichen zwischen HTML-Tags zu entfernen, aber ich weiß nicht, wie ich das machen soll.

im Idealfall würde das Plugin einen String für die Rückgabe zusammenfassen, anstatt die Ausgabepufferung zu verwenden, aber ich weiß nicht, ob sie sich jemals darum kümmern werden.

6
helgatheviking

Sie benötigen dazu kein Plugin. Fügen Sie einfach 3 Codezeilen am Ende der functions.php -Datei in Ihrem aktiven Thema hinzu:

remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 99 );
add_filter( 'the_content', 'shortcode_unautop', 100 );
7
MaximOrlovsky

Das ist eine nette Lösung, aber es deaktiviert Autop für alle Shortcodes, die möglicherweise nicht erwünscht sind.

Ich habe ein Skript geschrieben, mit dem Sie Folgendes ausführen können:

include "shortcode-wpautop-control.php";
chiedolabs_shortcode_wpautop_control(array('yourshortcode'));

Hiermit können Sie wpautop für bestimmte Kurzwahlen anstatt für alle von ihnen ausschalten.

Ich habe das Drehbuch noch einmal geschrieben. Ich habe nicht vor, mich selbst zu promoten, aber da ich es in Zukunft aktualisiere, werde ich es auf Github aktualisieren, sodass es keinen Sinn macht, den Code hier zu posten.

Das Skript finden Sie unter https://github.com/chiedolabs/shortcode-wpautop-control

3
Chiedo

Es gibt eine WordPress-Funktion, die diesen Job gut macht. Dazu müssen Sie keine benutzerdefinierte Funktion oder ein Plugin verwenden. Verwenden Sie einfach die Funktion shortcode_unautop($pee), um wpautop aus dem Shortcode-Inhalt zu entfernen. Hier ist $pee die erforderliche Zeichenfolge.

0
Eh Jewel