Como impedir que a macro tinymce insira nbsp ;?

Eu tenho o seguinte botão de macro definido para encerrar uma seleção em um shortcode no editor visual wp_editor:

(function() { tinymce.create('tinymce.plugins.ingredient_name', { init : function(ed, url){ ed.addButton('ingredient_name', { title : 'Tag ingredient', onclick : function() { var text=ed.selection.getContent({'format':'text'}); ed.execCommand('mceInsertContent',false,'[ingredient_name]' + text + '[/ingredient_name]'); }, image: url + "/name.png" }); } }); tinymce.PluginManager.add('ingredient_name', tinymce.plugins.ingredient_name); })(); 

A macro funciona como pretendido, exceto que tinymce também está inserindo & nbsp na frente do shortcode resultante. Então, em vez deste resultado:

 1 [ingredient_name]pound[/ingredient_name] salami 

Eu entendi isso:

 1 [ingredient_name]pound[/ingredient_name] salami 

Isso, de alguma forma, é mutilado ao inserir o database, e renderizado para o modelo, eu recebo “1 salada de libra”. Posso voltar e remover as ofensivas & nbsp, mas preferiria o tinyMCE não inserir essa entidade em primeiro lugar. Alguma ideia?

Solutions Collecting From Web of "Como impedir que a macro tinymce insira nbsp ;?"

bem, acabou por não ser um problema com pequena mce, em vez disso, php DOMdocument que estava filtrando a saída do tinyMCE, interpretada no charset errado, passando personagens de lixo para a página.

Diversão!

O editor TinyMCE WYSIWYG converte símbolos de espaço em   entidades por padrão. Isso causa porque a propriedade de entities padrão é configurada para converter símbolos de espaço em   entidades:

 entities: "160,nbsp,38,amp,34,quot,162,cent,8364,euro,163,pound,165,yen,169,copy,174,reg,8482,trade,8240,permil,181,micro...." 

Para resolver este problema, você deve redefinir a propriedade init da entities . Por exemplo:

 tinyMCE.init({ entities: "38,amp,34,quot,162,cent,8364,euro,163,pound,165,yen,169,copy,174,reg,8482,trade" }); 

Para inicializar as opções TinyMCE no WordPress, você deve adicionar seu próprio gancho ao filtro tiny_mce_before_init :

 function wpse8170_change_mce_options($initArray) { // other settings... $initArray['entities'] = '38,amp,34,quot,162,cent,8364,euro,163,pound,165,yen,169,copy,174,reg,8482,trade'; return $initArray; } add_filter('tiny_mce_before_init', 'wpse8170_change_mce_options'); 

A lista completa de valores, que você pode ajustar, pode ser lida na página TinyMCE Configuration . E a última opção de link para entidades .