Leere Absätze aus dem Inhalt entfernen?
-
-
Siehe die Frage: [Ich verwendeeinen Filter,um den automatischen Umbruch der
-Tags zuentfernen] (http://wordpress.stackexchange.com/questions/7846)
See the question: [I'm using a filter to remove thetags auto wrap](http://wordpress.stackexchange.com/questions/7846)
- 0
- 2011-04-03
- Chris_O
-
Versuchen Sie,Ihren Filter auszuführen,bevor `wpautop`estut,z.`add_filter ('the_content','qanda',7);` ..Try running your filter before `wpautop` does it's thing, eg. `add_filter('the_content', 'qanda', 7 );`..
- 1
- 2011-04-03
- t31os
-
@t31os: Kannst du deinen Kommentar zueiner Antwort verschieben,damit wir darüber abstimmen können?@t31os: Can you move your comment to an answer so we can vote on it?
- 0
- 2011-04-06
- Jan Fabry
-
10 Antworten
- Stimmen
-
- 2011-04-03
WordPressfügt automatisch die Tags
<p>
und</p>
ein,die Inhaltsunterbrechungeninnerhalbeines Posts odereiner Seitetrennen.Wenn Sie diese ausirgendeinem Grundentfernenmöchten odermüssen,können Sieeines derfolgenden Codeausschnitte verwenden.Um den wpautop-Filter vollständig zu deaktivieren,können Sie Folgendes verwenden:
remove_filter('the_content', 'wpautop');
Wenn dies weiterhinfunktionieren soll,fügen Sie Ihrem Filtereinen späteren Prioritätswert hinzu,z. B.:
add_filter('the_content', 'removeEmptyParagraphs',99999);
WordPress will automatically insert
<p>
and</p>
tags which separate content breaks within a post or page. If, for some reason, you want or need to remove these, you can use either of the following code snippets.To completely disable the wpautop filter, you can use:
remove_filter('the_content', 'wpautop');
If you still want this to function try adding a later priority value to your filter something like:
add_filter('the_content', 'removeEmptyParagraphs',99999);
-
Dankeschön!Ich weiß,dass WordPress automatischp-Tagseinfügt.Esgibt jedocheinige Fälle,in denenirgendwoin meinem Inhaltnur leere
und die automatische Formatierung.Ich willeinfach keine leeren Ps!
thank you! I know wordpress automatically inserts p tags. However there happen some cases where there are just empty tags somewhere in my content (when i inspect it with some tool)... that happens when doing a lot of removal and editing of posts. I just don't want to have empty paragraphs in my content, that's all. I do need paragraphs, just not empty ones. The 99999 doesn't make a difference. Just doesn't work. the wpautop filter is not what I want. It prevents all's and autoformatting. I just don't want any empty p's!
- 2
- 2011-04-03
- mathiregister
-
Ich habemeinen Beitrag aktualisiert,damit Sie sehen,wasichmeine!Ich habeeine Funktiongemacht,diebereits den Inhaltfiltert.esfügt divsein undes scheint,dass WordPressi updated my post so you see what I mean! i did a function that already filters the content. it inserts divs and it seemes wordpress is inserting before and after it, i just don't get it. any ideas?
- 0
- 2011-04-03
- mathiregister
-
- 2012-01-02
Ich hatte dasgleiche Problem wie Sie.Ich habegeradeeine ... sagen wir ...nicht sehr schöne Lösunggemacht,aber siefunktioniert undbisjetztistes dieeinzige Lösung,dieich habe.Ich habeeine kleine JavaScript-Zeile hinzugefügt.EsbrauchtjQuery,aberichbin sicher,Sie könnenes ohne herausfinden.
Diesistmein winziger JS:
$('p:empty').remove();
Dasfunktioniertbei mir!
I had the same problem you have. I just did a... let's say... not very beautiful solution, but it works and so far it's the only solution I have. I added a little JavaScript line. It needs jQuery, but I'm sure you can figure it out without.
This is my tiny JS:
$('p:empty').remove();
This works for me!
-
Oh,dasist keine süße kleine Zahl!Vielen Dankfür den Tipp -esfunktioniertfürmich undfalls sichjemand andersgefragt hat,wiemanes verwendet,fügen Sieeseinfachin diebenutzerdefinierte JS-Datei Ihres Themasein.oh aint that a sweet little number! Thanks for the tip - it works for me and in case anyone else wondered how to use it, just put it in your theme's custom JS file.
- 0
- 2012-09-06
- Sol
-
@D_N Die Verwendung von CSS zum Ausblenden leerer Absatz-Tagsfunktioniertnurfür "
\n
".@D_N Using CSS to hide empty Paragraph tags only works for `` but doesn't work for `\n
`.- 0
- 2017-04-21
- Michael Ecklund
-
- 2015-09-30
Verwenden Sieeinfach CSS
p:empty { display: none; }
Simply use CSS
p:empty { display: none; }
-
Bittefügen Sie Ihrer Antworteine Erklärung hinzuPlease add an explanation to your answer
- 0
- 2015-09-30
- Pieter Goosen
-
@PieterGoosenistes schon selbsterklärend@PieterGoosen it is already self-explanatory
- 4
- 2015-10-01
- at least three characters
-
Wenn Sienur vermeidenmöchten,dass sie aus Abstandsgründen angezeigt werden,funktioniert diesbis auf IE9.http://caniuse.com/#feat=css-sel3 und https://developer.mozilla.org/en-US/docs/Web/CSS/%3Aemptyfürmehr.If you just want to avoid displaying them for spacing purposes, this works well down to IE9. http://caniuse.com/#feat=css-sel3 and https://developer.mozilla.org/en-US/docs/Web/CSS/%3Aempty for more.
- 0
- 2016-01-03
- Will
-
nette Optionmit CSS-Auswahlmethode,wusstenicht,dassesexistiert.Vielen Dank!nice option with CSS selector method, didn't know it existed. thanks!
- 1
- 2016-04-14
- i_a
-
Zu Ihrer Information: Wenn sichim
-Tag " "befindet,funktioniert diesnicht.
FYI: If there is ` ` inside thetag this won't work.
- 1
- 2019-06-06
- RynoRn
-
- 2012-05-22
Ich weiß,dass diesbereits als "gelöst"markiertist,abernur als Referenz. Hieristeine Funktion,diegenau dastut,was Sie wollen,ohne dass Markups zu Posts hinzugefügt werdenmüssen.Fügen Sie dieseinfachin diefunctions.php Ihres Themasein:
add_filter('the_content', 'remove_empty_p', 20, 1); function remove_empty_p($content){ $content = force_balance_tags($content); return preg_replace('#<p>\s*+(<br\s*/*>)?\s*</p>#i', '', $content); }
Diesist aus diesem Kern: https://gist.github.com/1668216
I know this is already marked 'solved' but just for reference, here's a function which does exactly what you want without having to add any markup to posts. Just put this in your theme's functions.php:
add_filter('the_content', 'remove_empty_p', 20, 1); function remove_empty_p($content){ $content = force_balance_tags($content); return preg_replace('#<p>\s*+(<br\s*/*>)?\s*</p>#i', '', $content); }
This is from this gist: https://gist.github.com/1668216
-
Nurein kleiner Hinweis zur Verwendung vonforce_balance_tags () ... Ichbin aufeinen kniffligen Fehlergestoßen,der durch diese Funktion verursacht wurde,als siefür Inhalte verwendet wurde,die JavaScriptenthielten (JS stammte von Gravity Forms,wenn Ajaxfürein Formular verwendet wurde).Es sind Problememit `force_balance_tags`bekannt,wennesin bestimmten Situationen auf das Zeichen << stößt.Weitere Informationenfinden Sie unter Ticket [9270] (http://core.trac.wordpress.org/ticket/9270).Just a little note about using force_balance_tags()... I ran into a tricky bug caused by this function when it was used on content that included JavaScript (JS was coming from Gravity Forms when using ajax on a form). There are known problems with `force_balance_tags` when it encounters the `<` character in certain situations. See ticket [9270]( http://core.trac.wordpress.org/ticket/9270) for details.
- 6
- 2013-08-14
- Dave Romsey
-
Ich hatte dasgleiche Problem,das von Dave hervorgehoben wurde: Das Snippetentfernteeingebettetes YouTube-Video und das verursachte auch Validierungsprobleme auf Amp-Seiten.I had the same problem highlighted by Dave: the snippet removed embedded youtube video and that caused validation problems on amp pages also.
- 0
- 2019-06-29
- Marco Panichi
-
- 2011-04-06
Sie können Ihren Filtereinfach ausführen,bevor sich dieserböse
wpautop
einhakt undmit dem Markup herumspielt.add_filter('the_content', 'qanda', 7 );
Auf diese Weise haben Siebereits konvertiert,was Sie zum Zeitpunkt des Einhängensbenötigen,wasin einigen Fällen hilfreichist.
You could just run your filter before that nasty
wpautop
hooks on and messes with the markup.add_filter('the_content', 'qanda', 7 );
That way, you've already converted what you need to by the time it hooks on, which does help in some cases.
-
- 2017-12-06
Gleicher Ansatz als 2 Antworten vormir, abereine aktualisierte Regex,weil seinefürmichnichtfunktioniert hat.
der reguläre Ausdruck:
/<p>(?:\s| )*?<\/p>/i
(Nicht-Capture-Gruppe,dienacheinerbeliebigen Anzahl von Leerzeichen oder
sinnerhalb desp-Tags sucht,wobei alle Groß- und Kleinschreibungnichtberücksichtigt wird.add_filter('the_content', function($content) { $content = force_balance_tags($content); return preg_replace('/<p>(?:\s| )*?<\/p>/i', '', $content); }, 10, 1);
Same approach than 2 answers before me, but an updated regex, because his didn't work for me.
the regex:
/<p>(?:\s| )*?<\/p>/i
(non capture group looking for any number of either whitespace or
s inside p-tag, all case insenstive.add_filter('the_content', function($content) { $content = force_balance_tags($content); return preg_replace('/<p>(?:\s| )*?<\/p>/i', '', $content); }, 10, 1);
-
- 2011-04-03
Ichfand das seltsam,aber wenn Sie
the_content()
aufrufen,werden Absätzein der von Ihnenbeschriebenen Weiseeingefügt.Wenn Sie den HTML-Codemöchten,ähnlich wie Sieihneingegeben haben (dasselbe wie "HTML anzeigen"beim Bearbeiten),verwenden Sieget_the_content()
,um den Inhalt ohne Formatierung und Absatz-Tags zurückzugeben.Daes zurückgegeben wird,stellen Sie sicher,dass Sie Folgendes verwenden:
echoget_the_content ();
Siehe auch: http://codex.wordpress.org/Function_Reference/get_the_content
I found this weird, but actually calling
the_content()
will insert paragraphs in the manner you describe. If you want the html code, basically like you entered it (the same as "view HTML" when editing), then useget_the_content()
which returns the content without formatting and paragraph tags.Since it returns it, make sure you use something like:
echo get_the_content();
See also: http://codex.wordpress.org/Function_Reference/get_the_content
-
Nun,danke.Das willich abernicht!Ichbrauchenormale Absätze.Erstensistesein semantisches Markup und zweitensistesgenau so,wiees soll.Ichmöchteeinfach keine leeren Absätze haben,die keinen Sinnergeben!Einfach weilich das Styling auf diese Absätze angewendet habe,erscheinenmit diesem Styling auch leere Absätze undmeine Seite sieht komisch aus.well, thank you. However I don't want that! I need normal paragraphs. First of it's semantic markup and secondly it's just the way it's supposed to. I just don't to have empty paragraphs that don't make sense! Simply because I have styling applied to those paragraphs also empty paragraphs appear with this styling and my page looks weird.
- 0
- 2011-04-03
- mathiregister
-
Ichfragemicheigentlich,warummein add_filter-Dingnichtfunktioniert.I actuall wonder why my add_filter thingy does not work?
- 0
- 2011-04-03
- mathiregister
-
Erwischt.Ich würdeempfehlen,ein oder zwei Mal von HTML zu Visual und zurück zu wechseln.Ichglaube,wenn der WYSIWYG-Editorgeladen wird,werden leere Absatz-Tagsentfernt.Gotcha. Well one thing I would recommend trying is switching from HTML to visual and back a time or two. I believe when the WYSIWYG editor loads it does remove empty paragraph tags.
- 0
- 2011-04-04
- cwd
-
- 2014-05-07
Dadurch werden rekursiv alle leeren HTML-Tags aus der Zeichenfolge
entferntadd_filter('the_content', 'remove_empty_tags_recursive', 20, 1); function remove_empty_tags_recursive ($str, $repto = NULL) { $str = force_balance_tags($str); //** Return if string not given or empty. if (!is_string ($str) || trim ($str) == '') return $str; //** Recursive empty HTML tags. return preg_replace ( //** Pattern written by Junaid Atari. '/<([^<\/>]*)>([\s]*?|(?R))<\/\1>/imsU', //** Replace with nothing if string empty. !is_string ($repto) ? '' : $repto, //** Source string $str );}
Das Muster stammt von http://Codesnap.blogspot.in/2011/04/recursively-remove-empty-html-tags.html
This will recursively remove all the empty html tags from the string
add_filter('the_content', 'remove_empty_tags_recursive', 20, 1); function remove_empty_tags_recursive ($str, $repto = NULL) { $str = force_balance_tags($str); //** Return if string not given or empty. if (!is_string ($str) || trim ($str) == '') return $str; //** Recursive empty HTML tags. return preg_replace ( //** Pattern written by Junaid Atari. '/<([^<\/>]*)>([\s]*?|(?R))<\/\1>/imsU', //** Replace with nothing if string empty. !is_string ($repto) ? '' : $repto, //** Source string $str );}
Pattern is taken from http://codesnap.blogspot.in/2011/04/recursively-remove-empty-html-tags.html
-
- 2017-05-15
Wenn Sie
<p>
-Tagsmit Leerzeichenim Inhalt haben, Gehen Sie zu Ihrem Beitrag oder Ihrer Seite undbearbeiten Sieihnnichtim visuellen Stil.Sie würden dorteinige
finden. Löschen Siees und die leeren<p>
-Tags verschwinden.If you have
<p>
tags with whitespace in the content, go to your post or page an edit it not in visual style.you would be find some
in there.. Delete it and the empty<p>
tags will disappear. -
- 2018-09-19
Umnur HTML-Inhalte ohne
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php the_title(); ?> <?php echo $post->post_content; ?> <?php endwhile; endif; ?>
In order to have only html content without
tags we can use the following loop to out put only the html without formatting of the post or page<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php the_title(); ?> <?php echo $post->post_content; ?> <?php endwhile; endif; ?>
Hey Leute, Ichmöchteeinfach verhindern,dassin meinem WordPress-Beitrag leere Absätzeerstellt werden. Diespassiert häufig,wenn versucht wird,Inhaltemanuell zuplatzieren.
Ich weißnicht,warum diesnicht wirksam wird?
bearbeiten/aktualisieren:
scheint das Problem zu sein:
Ich habe diese Funktion selbst ausgeführt,umin meinen Posts und Seitennacheiner Art Shortcode-Muster zufiltern. Obwohl der Beitragin meinem Backend vollständig ohne Absätze und unnötige Abständeerstellt wurde,sieht das Ergebnisfolgendermaßen aus:
Hast dueine Idee,woher diese leeren Ps kommen?