Ei pessoal, eu simplesmente quero impedir a criação de parágrafos vazios no meu post do wordpress. Isso acontece com bastante frequência ao tentar espaçar manualmente o conteúdo.
Não sei por que isso não entra em vigor?
/*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');
editar / atualizar:
Parece que o problema é este:
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');
Eu mesmo fiz essa função para filtrar um tipo de padrão de shortcode em minhas postagens e páginas. Mesmo que, no meu back-end, o post seja feito completamente sem parágrafos e espaçamentos desnecessários, o resultado será o seguinte:
<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>
alguma idéia de onde vêm esses p vazios?
wpautop
fazer as coisas, por exemplo.add_filter('the_content', 'qanda', 7 );
..Respostas:
O WordPress inserirá automaticamente
<p>
e</p>
tags que separam as quebras de conteúdo em uma postagem ou página. Se, por algum motivo, você desejar ou precisar removê-los, poderá usar um dos seguintes trechos de código.Para desativar completamente o filtro wpautop, você pode usar:
Se você ainda deseja que isso funcione, tente adicionar um valor de prioridade posterior ao seu filtro, algo como:
fonte
Eu tive o mesmo problema que você tem. Acabei de fazer uma ... digamos ... solução não muito bonita, mas funciona e até agora é a única solução que tenho. Eu adicionei uma pequena linha de JavaScript. Precisa de jQuery, mas tenho certeza que você pode descobrir isso sem.
Este é o meu pequeno JS:
Isso funciona para mim!
fonte
p:empty { display:none; }
<p></p>
mas não funciona<p>\n</p>
.Eu sei que isso já está marcado como 'resolvido', mas apenas para referência, aqui está uma função que faz exatamente o que você deseja, sem precisar adicionar nenhuma marcação às postagens. Basta colocar isso nas funções do seu tema.php:
Isto é desta essência: https://gist.github.com/1668216
fonte
force_balance_tags
quando ele encontra o<
personagem em determinadas situações. Veja o ticket [9270] ( core.trac.wordpress.org/ticket/9270 ) para obter detalhes.Basta usar CSS
fonte
dentro da tag <p>, isso não funcionará.Você pode simplesmente executar o filtro antes que esse desagradável se
wpautop
ligue e mexa com a marcação.Dessa forma, você já converteu o que precisa no momento em que é ligado, o que ajuda em alguns casos.
fonte
A mesma abordagem que duas respostas antes de mim, mas um regex atualizado, porque o dele não funcionou para mim.
o regex:
/<p>(?:\s| )*?<\/p>/i
(grupo sem captura que procura por qualquer número de espaços em branco ou
s dentro da tag p, tudo em maiúsculas e minúsculas.fonte
Achei isso estranho, mas, na verdade, chamar
the_content()
inserirá parágrafos da maneira que você descreve. Se você deseja o código html, basicamente como o inseriu (o mesmo que "visualizar HTML" ao editar), useget_the_content()
que retorna o conteúdo sem formatação e tags de parágrafo.Como o devolve, certifique-se de usar algo como:
Veja também: http://codex.wordpress.org/Function_Reference/get_the_content
fonte
Isso removerá recursivamente todas as tags html vazias da string
O padrão é obtido em http://codesnap.blogspot.in/2011/04/recursively-remove-empty-html-tags.html
fonte
Se você tiver
<p>
tags com espaço em branco no conteúdo, vá para sua postagem ou página e edite-a não no estilo visual.você encontraria alguns
lá. Exclua-o e as<p>
tags vazias desaparecerão.fonte
Para ter apenas conteúdo html sem
tags, podemos usar o seguinte loop para colocar apenas o html sem formatar a postagem ou a páginafonte