Eliminar non-breaking spaces ao fazer copy/paste do Word para o WordPress

Temos notado ultimamente que ao fazer copy/paste do Word para o editor (TinyMCE) do WordPress são por vezes inseridos non-breaking spaces (Unicode: 00A0) em vez de espaços “normais” de uma forma um pouco aleatória.

A consequência da existência deste caractere é que muitas vezes, e dependendo do layout do site, as frases não quebram onde deviam, ficando o texto com um alinhamento incorrecto.

Para remover este caractere e substituí-lo por um espaço “normal”, basta adicionar o seguinte código ao functions.php do seu tema:

add_filter('tiny_mce_before_init', 'change_mce_options');
function change_mce_options($init) {
	$init['paste_preprocess']='function(pl, o) { o.content=o.content.replace(/\u00A0/g," "); }';
	 return $init;
}

Se quiser também aproveitar para limpar espaços extra (além de 1 entre cada palavra), deve alterar o código para:

add_filter('tiny_mce_before_init', 'change_mce_options');
function change_mce_options($init) {
	$init['paste_preprocess']='function(pl, o) { o.content=o.content.replace(/\u00A0/g," "); o.content=o.content.replace(/\s+/g," "); }';
	 return $init;
}

Nota: Para ver, no Microsoft Word, que tipo de espaço tem em cada situação, basta seleccionar o caractere em causa e fazer ALT+X. O mesmo será substituído pelo seu Unicode.

word_non_breaking

Ainda sem comentários.

Deixe um comentário

*

_