rimuovere i paragrafi vuoti da the_content?
-
-
Vedi la domanda: [Sto usando unfiltroper rimuoverei tag
a capo automatico] (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
-
Prova aeseguireilfiltroprima che `wpautop`faccia la sua cosa,ades.`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:puoi spostareiltuo commentoin una rispostain modo chepossiamo votarla?@t31os: Can you move your comment to an answer so we can vote on it?
- 0
- 2011-04-06
- Jan Fabry
-
10 risposta
- voti
-
- 2011-04-03
WordPressinserirà automaticamentei tag
<p>
e</p>
che separano leinterruzioni di contenuto all'interno di un articolo o di unapagina.Se,per qualchemotivo,desideri o devi rimuoverli,puoi utilizzare uno dei seguenti snippet di codice.Per disabilitare completamenteilfiltro wpautop,puoi usare:
remove_filter('the_content', 'wpautop');
Se vuoi ancora chefunzioni,prova ad aggiungere un valore dipriorità successivo altuofiltro come:
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);
-
grazie!So che wordpressinserisce automaticamentei tagp.Tuttavia,ci sono casiin cui ci sono solotag
e laformattazione automatica.Non voglio solop vuote!
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
-
ho aggiornatoilmiopost quindi capisci cosaintendo!hofatto unafunzione chefiltragiàil contenuto.inserisce dive sembra che wordpressinseriscai 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
Ho avuto lo stessoproblema che haitu.Ho appenafatto una ... diciamo ...nonmoltobella soluzione,mafunzionae finora è l'unica soluzione che ho.Ho aggiunto unapiccola riga JavaScript.Habisogno dijQuery,ma sono sicuro chepuoi capirlo senza.
Questo èilmiopiccolo JS:
$ ('p: vuoto'). remove (); Questofunzionaperme!
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!
-
ohnon è unnumero così dolce!Grazieperil suggerimento:perme funzionae nel caso qualcun altro si chiedesse come usarlo,inseriscilonelfile JSpersonalizzato deltuotema.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 Usarei CSSpernasconderei tag Paragraph vuotifunziona soloper "
\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
Usa semplicemente CSS
p:empty { display: none; }
Simply use CSS
p:empty { display: none; }
-
Perfavore aggiungi una spiegazione allatua rispostaPlease add an explanation to your answer
- 0
- 2015-09-30
- Pieter Goosen
-
@PieterGoosen ègià autoesplicativo@PieterGoosen it is already self-explanatory
- 4
- 2015-10-01
- at least three characters
-
Se vuoi soloevitare di visualizzarliper scopi di spaziatura,questofunzionabene fino a IE9.http://caniuse.com/#feat=css-sel3e https://developer.mozilla.org/en-US/docs/Web/CSS/%3Aemptyper ulterioriinformazioni.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
-
bella opzione conilmetodo di selezione CSS,non sapevo cheesistesse.Grazie!nice option with CSS selector method, didn't know it existed. thanks!
- 1
- 2016-04-14
- i_a
-
FYI: Se c'è " " all'interno deltag
,nonfunzionerà.
FYI: If there is ` ` inside thetag this won't work.
- 1
- 2019-06-06
- RynoRn
-
- 2012-05-22
So che ègià contrassegnato come "risolto"ma soloper riferimento,ecco unafunzione chefaesattamente quello che vuoi senza dover aggiungere alcunmarkup aipost.Mettilonelfunctions.php deltuotema:
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); }
Questo ètratto da questa sintesi: 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
-
Solo unapiccolanota sull'uso diforce_balance_tags () ... Mi sonoimbattutoin unbug complicato causato da questafunzione quando veniva utilizzata su contenuti cheincludevano JavaScript (JSproveniva da Gravity Forms quando si utilizzava ajax su unmodulo).Ci sonoprobleminoti con "force_balance_tags" quandoincontrail carattere "<"in determinate situazioni.Vediticket [9270] (http://core.trac.wordpress.org/ticket/9270)peri dettagli.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
-
Ho avuto lo stessoproblemaevidenziato da Dave: lo snippet ha rimossoil video di YouTubeincorporatoe ciò ha causatoproblemi di convalida anchenellepagine di amp.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
Potresti semplicementeeseguireiltuofiltroprima che quelbrutto
wpautop
si aggancie creiproblemi conilmarkup.add_filter('the_content', 'qanda', 7 );
In questomodo,haigià convertito ciò di cui haibisognonelmomentoin cui si aggancia,il chein alcuni casi aiuta.
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
Stesso approccio di 2 risposteprima dime, ma una regex aggiornata,perché la suanon hafunzionatoperme.
la regex:
/<p>(?:\s| )*?<\/p>/i
(grupponon di acquisizione che cerca unnumero qualsiasi di spazibianchi o
all'interno delp-tag,senza distinzionetramaiuscolee minuscole.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
L'hotrovato strano,main realtà chiamando
the_content()
verrannoinseritii paragrafinelmodoin cui descrivi.Se vuoiil codice html,praticamente come l'haiinserito (lo stesso di "visualizza HTML" durante lamodifica),usaget_the_content()
che restituisceil contenuto senzaformattazionee tag diparagrafo.Dalmomento che lo restituisce,assicurati di utilizzare qualcosa come:
echoget_the_content ();
Vedi anche: 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
-
benegrazie.Comunquenon lo voglio!Hobisogno diparagrafinormali.Inprimo luogo èilmarkup semanticoe in secondo luogo è soloilmodoin cui dovrebbe.È solo chenon devo avereparagrafi vuoti chenon hanno senso!Semplicementeperché ho uno stile applicato a queiparagrafi,anchei paragrafi vuoti appaiono con questo stilee lamiapagina sembra strana.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
-
Mi chiedoin realtàperché lamia cosa add_filternonfunziona?I actuall wonder why my add_filter thingy does not work?
- 0
- 2011-04-03
- mathiregister
-
Gotcha.Bene,una cosa che consiglierei diprovare èpassare da HTML a visivoe indietro unpaio di volte.Credo che quando viene caricato l'editor WYSIWYG rimuovai tag diparagrafo vuoti.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
Questo rimuoverà ricorsivamentetuttii tag html vuoti dalla stringa
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 );}
Ilpattern ètratto da 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
Se haitag
<p>
con spazinel contenuto, vai altuopost opaginae modificalononin stile visivo.troverai unpo 'di
lì .. Eliminaloe itag<p>
vuoti scompariranno.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
Per avere solo contenuto html senzatag
<?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; ?>
Ciao ragazzi, Voglio semplicementeimpedire la creazione diparagrafi vuotinelmiopost wordpress. Ciò accade abbastanza spesso quando si cerca di spaziaremanualmentei contenuti.
Non soperché questonon haeffetto?
modifica/aggiorna:
sembra cheilproblema sia questo:
Hoeseguitopersonalmente questafunzioneperfiltrare una sorta dipattern di shortcodenei mieiposte pagine. Anche senelmiobackendilpost è completamentefatto senzaparagrafie spazinonnecessari,il risultato è questo:
qualcheidea da dove vengono questep vuote?