Posts tagged with: paragráfos

Problemas com parágrafos no WordPress???

Muitos usuários do WordPress já devem ter percebido que algumas vezes a visualização do seu post/página não corresponde ao html gerado pelo editor TinyMCE (editor padrão do WP). Assim, muitos recorrem a aba HTML para inserir as tags <p> e <br> adicionais para conseguir o mesmo resultado.

Para resolver essa questão venho aqui apresentar 2 soluções. A primeira apresentada a seguir deve ser inserida no arquivo functions.php do seu tema e faz uma varredura no seu conteúdo para adicionar as tags <p> e <br>

function my_formatter($content) {
 $new_content = '';
 $pattern_full = '{(\[raw\].*?\[/raw\])}is';
 $pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
 $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);

 foreach ($pieces as $piece) {
 if (preg_match($pattern_contents, $piece, $matches)) {
 $new_content .= $matches[1];
 } else {
 $new_content .= wptexturize(wpautop($piece));
 }
 }

 return $new_content;
}
add_filter('the_content', 'my_formatter', 99);

Já a 2ª solução, envolvendo o plugin TinyMCE Advanced, disponibiliza além desta funcionalidade, novos botões para o editor padrão do WP (tabelas, linhas, datas), assim como a personalização dos botoes que você deseja exibir.

Na figura acima destaquei a opção que para de remover as tags <p> e <br> da aba html do editor.

Ahhh existe também outra alternativa para este plugin que  é o FCKEditor, mas falarei dele em outra oportunidade.


Evitar que o WordPress retire as tags br e p ao visualizar post

Como a maioria aqui já deve ter percebido, o WordPress possui como funcionalidade padrão retirar as tags <br/> e <p> do conteúdo de seus posts enquanto você está  visualizando/editando-os. (Claro que no banco de dados vai está presente ok????)

Mesmo clicando na aba html, as tags não aparecem e isso em alguns casos prejudica uma edição mais específica do conteúdo.

Para quem sempre procurou como retirar esta função, ai vai um trecho de código simples que, ao ser adicionado ao functions.php de seu tema,  que resolve este problema.

&lt;?php
function my_formatter($content) {
 $new_content = '';
 $pattern_full = '{(\[raw\].*?\[/raw\])}is';
 $pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
 $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);

 foreach ($pieces as $piece) {
 if (preg_match($pattern_contents, $piece, $matches)) {
 $new_content .= $matches[1];
 } else {
 $new_content .= wptexturize(wpautop($piece));
 }
 }

 return $new_content;
}

remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

add_filter('the_content', 'my_formatter', 99);
?&gt;