supprimer les paragraphes vides de the_content?
-
-
Voir la question: [J'utilise unfiltrepour supprimer lebouclage automatique desbalises
] (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
-
Essayez d'exécuter votrefiltre avant que `wpautop`ne lefasse,parexemple.`add_filter ('le_contenu','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: Pouvez-vous déplacer votre commentaire vers une réponse afin quenouspuissions voter dessus?@t31os: Can you move your comment to an answer so we can vote on it?
- 0
- 2011-04-06
- Jan Fabry
-
10 réponses
- votes
-
- 2011-04-03
WordPressinsérera automatiquement lesbalises
<p>
et</p>
qui séparent lespauses de contenu dans un article ou unepage.Si,pour une raison quelconque,vous souhaitez ou devez les supprimer,vouspouvez utiliser l'un desextraits de code suivants.Pour désactiver complètement lefiltre wpautop,vouspouvez utiliser:
remove_filter('the_content', 'wpautop');
Si vous vouleztoujours que celafonctionne,essayez d'ajouter une valeur depriorité ultérieure à votrefiltre,quelque chose comme:
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);
-
Je vous remercie!Je sais que wordpressinsère automatiquement desbalisesp.Cependant,il seproduit des cas oùiln'y a que desbalises
et leformatage automatique.Jene veuxjustepas dep vides!
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
-
J'aimis àjourmonmessagepour que vous voyiez ce queje veux dire!j'aifait unefonction quifiltre déjà le contenu.ilinsère des divset il semble que wordpressinsèrei 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
J'aieu lemêmeproblème que vous.J'aijustefait une ... disons ...pastrèsbelle solution,mais çamarcheet jusqu'àprésent c'est la seule solution quej'ai.J'ai ajouté unepetite ligne JavaScript.Il abesoin dejQuery,maisje suis sûr que vouspouvez le comprendre sans.
Voicimonpetit JS:
$('p:empty').remove();
Celafonctionnepourmoi!
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!
-
ohn'est-cepas unjolipetit nombre!Mercipour le conseil - celafonctionnepourmoiet au cas où quelqu'un d'autre se demanderait comment l'utiliser,mettez-le simplement dans lefichier JSpersonnalisé de votrethème.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 L'utilisation de CSSpourmasquer lesbalises deparagraphe videsne fonctionne quepour `
\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
Utilisez simplement CSS
p:empty { display: none; }
Simply use CSS
p:empty { display: none; }
-
Veuillez ajouter uneexplication à votre réponsePlease add an explanation to your answer
- 0
- 2015-09-30
- Pieter Goosen
-
@PieterGoosen c'est déjàexplicite@PieterGoosen it is already self-explanatory
- 4
- 2015-10-01
- at least three characters
-
Si vous souhaitez simplement éviter de les afficher à desfins d'espacement,celafonctionnebien jusqu'à IE9.http://caniuse.com/#feat=css-sel3et https://developer.mozilla.org/en-US/docs/Web/CSS/%3Aemptypouren savoirplus.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
-
belle option avec laméthode de sélection CSS,je ne savaispas qu'elleexistait.Merci!nice option with CSS selector method, didn't know it existed. thanks!
- 1
- 2016-04-14
- i_a
-
FYI: S'il y a ` ` dans labalise
celane fonctionnerapas.
FYI: If there is ` ` inside thetag this won't work.
- 1
- 2019-06-06
- RynoRn
-
- 2012-05-22
Je sais que celaest déjàmarqué comme «résolu»,maisjustepour référence,voici unefonction quifaitexactement ce que vous voulez sans avoir à ajouter debalisage auxmessages.Mettez simplement ceci dans lefunctions.php de votrethème:
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); }
Voici l'essentiel: 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
-
Juste unpetit mot sur l'utilisation deforce_balance_tags () ... J'ai rencontré unbug délicat causépar cettefonction lorsqu'elle était utilisée sur du contenu contenant du JavaScript (JSprovenait de Gravity Forms lors de l'utilisation d'ajax sur unformulaire).Il y a desproblèmes connus avec `force_balance_tags` quandil rencontre le caractère` <`dans certaines situations.Voir leticket [9270] (http://core.trac.wordpress.org/ticket/9270)pourplus de détails.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
-
J'aieu lemêmeproblème soulignépar Dave: l'extrait de code supprimait la vidéo youtubeintégréeet cela causait également desproblèmes de validation sur lespages d'ampli.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
Vouspouvez simplementexécuter votrefiltre avant que ceméchant
wpautop
ne s’accrocheet neperturbe lebalisage.add_filter('the_content', 'qanda', 7 );
De cettefaçon,vous avez déjà converti ce dont vous avezbesoin aumoment oùil s'accroche,ce qui aide dans certains cas.
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
Même approche que 2 réponses avantmoi, mais une regexmise àjour,car la siennene fonctionnaitpaspourmoi.
l'expression régulière:
/<p>(?:\s| )*?<\/p>/i
(groupenon capturé recherchant unnombre quelconque d'espaces ou de
s à l'intérieur de labalisep,letoutinsensible à la casse.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
J'aitrouvé celabizarre,maisen fait,appeler
the_content()
insérera desparagraphes de lamanière que vous décrivez.Si vous voulez le code html,essentiellement comme vous l'avezentré (lemême que "afficher le HTML" lors de l'édition),utilisezget_the_content()
qui renvoie le contenu sansmiseen formeni balises deparagraphe.Puisqu'il le renvoie,assurez-vous d'utiliser quelque chose comme:
echoget_the_content ();
Voir aussi: 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
-
bienmerci.Cependantje ne veuxpas ça!J'aibesoin deparagraphesnormaux.Premièrement,c'est lebalisage sémantiqueet deuxièmement,c'estjuste commeilest censé lefaire.Jene veuxtout simplementpas avoir deparagraphes vides quin'ont aucun sens!Tout simplementparce quej'ai appliqué un style à cesparagraphes,desparagraphes vides apparaissent également avec ce styleet mapage a l'airbizarre.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
-
Jeme demandeen faitpourquoimontruc add_filterne fonctionnepas?I actuall wonder why my add_filter thingy does not work?
- 0
- 2011-04-03
- mathiregister
-
Jet'aieu.Ehbien,une chose queje recommanderais d'essayerest depasser du HTML au visuelet de reveniren arrière unefois ou deux.Je crois que lorsque l'éditeur WYSIWYG se charge,il supprime lesbalises deparagraphe vides.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
Cela supprimera demanière récursivetoutes lesbalises html vides de la chaîne
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 );}
Lemodèleesttiré de 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
Si vous avez desbalises
<p>
avec desespaces dans le contenu, accédez à votremessage ou à votrepageet modifiez-le sans style visuel.vous ytrouveriez
.. Supprimez-leet lesbalises vides<p>
disparaîtront.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
Afin den'avoir que du contenu html sansbalises
<?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; ?>
Salut lesgars, Je veux simplementempêcher la création deparagraphes vides dansmon article wordpress. Cela seproduit assez souvent lorsque vousessayez d'espacermanuellement le contenu.
Jene saispaspourquoi celane prendpaseffet?
modifier/mettre àjour:
semble que leproblème soit le suivant:
J'aifait cettefonctionmoi-mêmepourfiltrer une sorte demodèle de code court dansmes articleset mespages. Même si dansmonbackend lemessageest complètementfait sansparagrapheset espacementsinutiles,le résultat ressemble à ceci:
Uneidée d'où viennent cesp vides?