Wordpress adicionando automaticamente "& nbsp;"?


12

Não tenho certeza se é o próprio wordpress ou o Tiny MCE que está fazendo isso. Mas ao alternar entre o editor HTML e o Visual, ele adiciona  e adiciona um extra a cada vez que alterno. Eu nem sequer tenho uma quebra de linha no código, parece de alguma forma decidir onde os colocará com base nas tags do meu código html.

O que está causando isso e como faço para corrigi-lo?

Eu já tentei isso no arquivo de funções do modelo:

//disable auto p
remove_filter ('the_content', 'wpautop');
remove_filter ('comment_text', 'wpautop');
// Remove auto formatting
remove_filter('the_content', 'wptexturize');
remove_filter('comment_text', 'wptexturize');
remove_filter('the_title', 'wptexturize');

2
Na verdade, ele está fazendo isso automaticamente quando você muda de guia, notei isso também e achei muito irritante. Nenhuma pista sobre como corrigi-lo ainda though ...
Joost de Valk

1
Eu uso o editor HTML quase exclusivamente, colando o código do BBEdit. Parece fazer isso comigo quando eu salvar no WP.
Goodbye Stack Exchange

bem, eu tenho esse problema também. Quando eu postar manualmente e clicar no botão Enter, ele adicionará um parágrafo para mim. Isso acontece depois que eu instalei o minúsculo MCE. O que você quer dizer com isso de qualquer maneira: Filter tiny_mce_init, para substituir as regras de filtragem de conteúdo padrão

1
Isso está acontecendo comigo nos títulos das postagens no loop. Parece indiscriminado (acontece apenas em alguns caracteres espaciais de algumas postagens).
Drewdavid

Eu consegui encontrar uma solução fácil para esse problema: wordpress.stackexchange.com/a/291746/135285
AturSams

Respostas:


2

Tudo o que uso é remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' );e isso impede o Wordpress de criar qualquer marcação extra. Você está copiando e colando seu código de um editor externo?


4
não funcionou para mim. Sem usar MCE minúsculo, apenas no HTML cada "update" ainda adiciona novos  s
Christian

3
Também não funciona para mim
sidonaldson

4

Descobri que espaços sem quebra estão sendo inseridos quando uso dois espaços após um período. O editor parece interpretar o espaço extra como uma tentativa de minha parte de usar espaços para formatação de texto.

Se eu copiar e colar meu artigo do editor do Wordpress em um editor de texto que suporte exibição hexadecimal (uso o EditPad Pro), vejo que o texto que pensei ser um período seguido por dois espaços é, na realidade, texto seguido por um único espaço, seguido pelo caractere unicode com o código hexadecimal A0, que é o caractere Unicode NO-BREAK SPACE .

Consegui remover o espaço sem interrupção nos artigos existentes, substituindo o espaço seguido pelo caractere NO_BREAK SPACE por apenas um espaço. Na maioria dos editores de texto, você pode fazer isso com a pesquisa e substituição, copiando os "dois espaços" na caixa de texto Localizar e escrevendo um único espaço na caixa Substituir texto.

Consegui evitar o problema daqui para frente digitando apenas um único espaço após um período.


3

O que está causando isso e como faço para corrigi-lo?

Qualquer conteúdo adicionado ou removido do seu Conteúdo da postagem é causado por tiny_mce_init, o que está aplicando, é as regras de filtragem de conteúdo.

As maneiras de evitá-lo são:

  1. Filtro tiny_mce_init, para substituir as regras padrão de filtragem de conteúdo
  2. Pare de alternar entre os editores Visual e HTML . Realmente; a menos que você queira usar a opção nº 1 acima, não alterne entre editores . O WordPress deve ser usado para que o conteúdo seja inserido usando o editor Visual ou HTML , mas não os dois simultaneamente.

Exemplo de uso para o tiny_mce_before_initfiltro no Codex. Outro exemplo de configuração / personalização do TinyMCE no Codex aqui .


11
Tenho certeza de que sua resposta nº 2 está errada. Isso ou alguém "estragou o cão" na interface do usuário. Se o editor foi projetado para ser usado apenas como Visual ou HTML, por que as guias estão lá? Por que não apenas tê-lo como uma opção nas configurações para usá-lo de uma maneira ou de outra? Além disso, as guias estão lá por padrão ... não é um recurso ou opção avançada para desenvolvedor que você precisa configurar. Tenho certeza de que eles pretendiam que os usuários pudessem clicar entre eles e que o problema real é que às vezes eles não funcionam bem juntos. (especialmente no caso de formatação de espaço)
luckykind 18/11/11

1
@luckykind Não, eles não tinham a intenção de alternar entre eles. Esse é apenas um problema de arquitetura do TinyMCE . E não é o único .
Kaiser #

3
Você não pode me dizer que uma interface do usuário que oferece guias para alternar entre edição HTML e Visual não se destina a ser usada dessa maneira. É quase 2016 e a questão ainda está lá.
Eric J.

1
Acho que meu computador não foi projetado para ser ligado, mas como ele possui um botão liga / desliga, nós o ativamos, portanto, todos os problemas são culpa do usuário. O design e o código são impecáveis, obviamente.
AturSams 21/01

1

Estou usando o Wordpress para um blog em hebraico.

Solução alternativa: copie o texto em um editor como sublime ou bloco de notas ++ e pesquise e substitua por espaços normais. Você pode copiar um deles do texto.

Isenção de responsabilidade: esta não é uma resposta muito grande e mais uma solução alternativa, portanto, fique à vontade para votar. Para mim, o Wordpress está felizmente adicionando nbsp em todos os lugares e sem rima ou razão. Não tenho certeza do que está causando isso. Isso está acontecendo muito com o texto hebraico, muito mais do que com qualquer texto em inglês.


0

Caso ainda haja alguém preso com isso em 2020. Tivemos esse problema depois de migrar um monte de conteúdo para o Wordpress. Adivinhe, todo mundo fez a coisa de copiar e colar e acabamos com muito conteúdo para poder corrigir manualmente. Eu implementei a função php abaixo e a adicionei ao functions.php e resolveu o problema para nós.

    function replace_content($content) {
        $content = htmlentities($content, null, 'utf-8');
        $content = str_replace(" ", " ", $content);
        $content = html_entity_decode($content);
    return $content;
    }
    add_filter('the_content','replace_content', 999999999)

O 999999 é apenas para garantir que esse filtro seja executado por último, caso eles  estejam sendo adicionados em algum lugar no meio.


-1

No arquivo css. Coloque display: inline-flexpara dentro p the excerpt. Os espaços em branco adicionais não incomodam mais. funciona para mim

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.