Remova os parágrafos vazios do the_content?
-
-
Veja a questão: [Estou usando umfiltropara remover o
tags auto wrap] (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
-
Tenteexecutar seufiltro antes de "WPautop",é uma coisa,porexemplo.`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: Vocêpodemover seu comentáriopara uma respostapara quepossamos votarnele?@t31os: Can you move your comment to an answer so we can vote on it?
- 0
- 2011-04-06
- Jan Fabry
-
10 respostas
- votos
-
- 2011-04-03
Wordpressinserirá automaticamente
<p>
e</p>
tags que separam o conteúdo quebraem umpost oupágina.Se,por algummotivo,você quiser ouprecisar removê-los,poderá usar um dos seguintestrechos de código.Para desativar completamente ofiltro WPautop,vocêpode usar:
remove_filter('the_content', 'wpautop');
Se você ainda quiser queissofuncione,tente adicionar um valorprioritárioposterior ao seufiltro algo como:
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);
-
obrigada!Eu sei que o WordPressinsere automaticamentep tags.Noentanto,acontece alguns casosem que há apenastags vazias
e autoformatting.Eu sónão queronenhump vazio!
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
-
Eu atualizeimeupostpara que você veja o queeu quero dizer!Eujáfiz umafunção quejáfiltra o conteúdo.Eleinsere divse parece que o WordPressestáinserindoi 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
Eutive omesmoproblema que vocêtem.Eu sófiz um ... Vamos dizer ... Não é uma soluçãomuitobonita,masfuncionae até agora é a única solução quetenho.Eu adicionei umapequena linha Javascript.Precisajquery,mastenho certeza que vocêpode descobrir sem.
Este é omeuminúsculo JS:
$('p:empty').remove();
Issofuncionaparamim!
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ão é umpequenonúmero!Obrigadopela dica -funcionaparamim e caso alguém seperguntasse como usá-lo,basta colocá-lono arquivo JSpersonalizado do seutema.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 usando csspara ocultar astags deparágrafos vaziosfunciona apenaspara `
\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
Basta usar CSS
p:empty { display: none; }
Simply use CSS
p:empty { display: none; }
-
Porfavor,adicione umaexplicação à sua respostaPlease add an explanation to your answer
- 0
- 2015-09-30
- Pieter Goosen
-
@Pietergoosenjá é auto-explicativo@PieterGoosen it is already self-explanatory
- 4
- 2015-10-01
- at least three characters
-
Se você quiser apenasevitarexibi-losparafins deespaçamento,issofuncionabem até o IE9.http://caniuse.com/#feat=css-sel3e https://developer.mozilla.org/en-us/docs/web/csss/%3aemptyparamais.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
-
Bela opção commétodo de seletor CSS,não sabia queexistia.obrigado!nice option with CSS selector method, didn't know it existed. thanks!
- 1
- 2016-04-14
- i_a
-
FYI: Se houver ` ` dentro datag
issonãofunciona.
FYI: If there is ` ` inside thetag this won't work.
- 1
- 2019-06-06
- RynoRn
-
- 2012-05-22
Eu sei queissojáestámarcado 'resolvido',mas apenaspara referência,aquiestá umafunção quefazexatamente o que você quer semter que adicionar qualquermarcação aosposts.Basta colocarissonasfunções do seutema.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); }
Isto é deste GIST: 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
-
Apenas umapequenanota sobre o uso deforça_balance_tags () ... Eu corripara umbug complicado causadoporessafunção quandofoi usadono conteúdo queincluiu JavaScript (JS vindo deformulários degravidade ao usar o Ajaxem umformulário).Háproblemas conhecidos com "Force_Balance_Tags" quandoencontra o `<`personagemem determinadas situações.Veja o Bilhete [9270] (http://core.trac.wordpress.org/ticket/9270)para obter detalhes.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
-
Eutive omesmoproblema destacadopor Dave: o snippet removido vídeo do YouTubeincorporadoe que causouproblemas de validaçãonaspáginas AMPtambém.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
Vocêpoderia apenasexecutar seufiltro antes dessenasty
wpautop
ganchose mexer com amarcação.add_filter('the_content', 'qanda', 7 );
dessaforma,vocêjá convertiu o que vocêprecisanomomentoem quegancha,o que ajudaem alguns casos.
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
mesma abordagem que 2 respostas antes demim, mas um regex atualizado,porque o delenãofuncionouparamim.
o regex:
/<p>(?:\s| )*?<\/p>/i
(Grupo denão captura àprocura de qualquernúmero deespaçoem branco ou
s dentro dep-tag,todos os casosinsenstive.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
Eu acheiesteestranho,mas realmente chamando
the_content()
iráinserirparágrafos damaneira que você descreve.Se você quiser o código HTML,basicamente como vocêinseriu (omesmo que "Exibir HTML" aoeditar)e,em seguida,useget_the_content()
que retorna o conteúdo semformataçãoe marcas deparágrafo.Como o retorna,certifique-se de usar algo como:
echoget_the_content ();
vertambém: 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
-
Bem,obrigado.Noentanto,eunão queroisso!Eupreciso deparágrafosnormais.Primeiro,é umamarcação semânticae,em segundo lugar,é apenas amaneira como deveria.Eu sónãotenhoparágrafos vazios quenãofazem sentido!Simplesmenteporqueeutenho umestilo aplicado aessesparágrafostambémparágrafos vazios aparecem comesteestiloe minhapáginapareceestranha.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
-
Eu acho que admirapor queminha coisa add_filternãofunciona?I actuall wonder why my add_filter thingy does not work?
- 0
- 2011-04-03
- mathiregister
-
Peguei vocês.Bem,uma coisa queeu recomendariatentar émudar de HTMLpara visuale voltar umtempo ou dois.Acredito que quando oeditor WYSIWYG carrega,remova astags deparágrafos vazias.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
Isso removerá recursivamentetodas astags HTML vazias da 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 );}
Padrão é retirado 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
Se vocêtiver
<p>
tags comespaçoem brancono conteúdo, vápara suapostagem oupágina umaediçãonãonoestilo visual.Vocêencontraria algum
lá. Excluae o<p>
tags desaparecerá.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
Parater apenas conteúdo HTML semtags
<?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; ?>
Eipessoal, Eu simplesmente queroimpedir a criação deparágrafos vaziosnomeupost do WordPress. Que acontece combastantefrequência aotentar conteúdomanual.
Eunão seipor queissonãoentraem vigor?
editar/update:
Parece que oproblema éeste:
Eufizissome função defiltrarpara umtipo depadrão de shortcodeem minhaspostagense páginas. Mesmonomeubackend,opost éfeito completamente semparágrafose espaçamentos desnecessários,o resultado é assim:
Algumaideia de ondeeste vazio vem?