Hey Leute, ich möchte einfach die Erstellung leerer Absätze in meinem WordPress-Post verhindern. Das passiert ziemlich oft, wenn versucht wird, Inhalte manuell zu platzieren.
Ich weiß nicht, warum dies nicht wirksam wird?
/*Remove empty paragraph tags from the_content*/
function removeEmptyParagraphs($content) {
/*$pattern = "/<p[^>]*><\\/p[^>]*>/";
$content = preg_replace($pattern, '', $content);*/
$content = str_replace("<p></p>","",$content);
return $content;
}
add_filter('the_content', 'removeEmptyParagraphs');
bearbeiten / aktualisieren:
Das Problem scheint folgendes zu sein:
function qanda($content) {
// filters for [q=some question] and [a=some answer]
// wraps it inside of <div class="qanda"><div class="question"> </div><div class="answer"> </div></div>
$content = preg_replace('/\[q=(.+?)].+?\[a=(.+?)]/is', '<div class="qanda"><div class="question">$1</div><div class="answer">$2</div></div>', $content);
return $content;
}
add_filter('the_content', 'qanda');
Ich habe diese Funktion selbst durchgeführt, um nach einer Art Shortcode-Muster in meinen Posts und Seiten zu filtern. Obwohl in meinem Backend der Beitrag komplett ohne Absätze und unnötige Abstände geschrieben wurde, sieht das Ergebnis so aus:
<div class="entry">
<p></p>
<div class="qanda">...</div>
<p></p>
<p></p>
<div class="qanda">...</div>
<p></p>
<p></p>
<div class="qanda">...</div>
</div>
Hast du eine Idee, woher dieses leere P kommt?
wpautop
es Sache ist, zB.add_filter('the_content', 'qanda', 7 );
..Antworten:
Wordpress wird automatisch eingefügt
<p>
und</p>
Tags , die Inhalte bricht in einem Beitrag oder eine Seite zu trennen. Wenn Sie diese aus irgendeinem Grund entfernen möchten oder müssen, können Sie einen der folgenden Codeausschnitte verwenden.Um den wpautop-Filter vollständig zu deaktivieren, können Sie Folgendes verwenden:
Wenn Sie dennoch möchten, dass dies funktioniert, fügen Sie Ihrem Filter einen späteren Prioritätswert hinzu, beispielsweise:
quelle
Ich hatte das gleiche Problem wie du. Ich habe gerade eine ... sagen wir mal ... nicht sehr schöne Lösung gemacht, aber sie funktioniert und bis jetzt ist sie die einzige Lösung, die ich habe. Ich habe eine kleine JavaScript-Zeile hinzugefügt. Es braucht jQuery, aber ich bin sicher, dass Sie es ohne herausfinden können.
Das ist mein kleiner JS:
Das funktioniert bei mir!
quelle
p:empty { display:none; }
<p></p>
, aber nicht für<p>\n</p>
.Ich weiß, dass dies bereits als "gelöst" markiert ist, aber nur als Referenz, hier ist eine Funktion, die genau das tut, was Sie wollen, ohne dass Sie Markups zu Posts hinzufügen müssen. Fügen Sie dies einfach in die functions.php Ihres Themes ein:
Dies ist aus dieser Zusammenfassung: https://gist.github.com/1668216
quelle
force_balance_tags
wenn es<
in bestimmten Situationen auf den Charakter trifft . Weitere Informationen finden Sie im Ticket [9270] ( core.trac.wordpress.org/ticket/9270 ).Benutze einfach CSS
quelle
innerhalb des <p> -Tags befindet, funktioniert dies nicht.Sie könnten einfach Ihren Filter laufen lassen, bevor sich dieser unangenehme
wpautop
Haken einstellt und mit dem Markup herumwirbelt.Auf diese Weise haben Sie bereits konvertiert, was Sie zum Zeitpunkt des Verbindungsaufbaus benötigen, was in einigen Fällen hilfreich ist.
quelle
Gleicher Ansatz wie 2 Antworten vor mir, aber ein aktualisierter regulärer Ausdruck, weil er bei mir nicht funktioniert hat.
the regex:
/<p>(?:\s| )*?<\/p>/i
(Nicht-Capture-Gruppe, die nach einer beliebigen Anzahl von Whitespaces oder
s innerhalb des p-Tags sucht , alles unter Berücksichtigung der Groß- und Kleinschreibung.quelle
Ich fand das seltsam, aber beim Aufrufen
the_content()
werden Absätze in der von Ihnen beschriebenen Weise eingefügt. Wenn Sie den HTML-Code so haben möchten, wie Sie ihn eingegeben haben (wie "HTML anzeigen" beim Bearbeiten), verwenden Sieget_the_content()
what, um den Inhalt ohne Formatierung und Absatz-Tags zurückzugeben.Da es es zurückgibt, stellen Sie sicher, dass Sie etwas verwenden wie:
Siehe auch: http://codex.wordpress.org/Function_Reference/get_the_content
quelle
Dadurch werden rekursiv alle leeren HTML-Tags aus der Zeichenfolge entfernt
Das Muster stammt aus http://codesnap.blogspot.in/2011/04/recursively-remove-empty-html-tags.html
quelle
Wenn Sie
<p>
Tags mit Leerzeichen im Inhalt haben, gehen Sie zu Ihrem Beitrag oder Ihrer Seite und bearbeiten Sie ihn nicht im visuellen Stil.Sie würden einige
darin finden. Löschen Sie es und die leeren<p>
Umbauten verschwinden.quelle
Um nur HTML-Inhalte ohne zu haben
Tags können wir die folgende Schleife verwenden, um nur den HTML-Code auszugeben, ohne den Beitrag oder die Seite zu formatierenquelle