web-dev-qa-db-fra.com

Supprimer les lignes vides (& nbsp;) lorsque l'auteur met à jour son message

Chaque fois que vous ajoutez une ligne vide entre les paragraphes à l'aide de TinyMCE, l'entité de caractère   est ajoutée.

Comment puis-je supprimer le contenu de toutes les occurrences de ce caractère lorsqu'un auteur met à jour son message (save_post)?

2
Christine Cooper

Je l'ai compris, en l'accrochant à content_save_pre:

function remove_empty_lines( $content ){

  // replace empty lines
  $content = preg_replace("/ /", "", $content);

  return $content;
}
add_action('content_save_pre', 'remove_empty_lines');
7
Christine Cooper

J'ai bien aimé votre solution, mais il se peut que le "" soit légitime ou prévu dans une partie du contenu plus bas dans la structure du contenu. Le problème - du moins pour moi - ne se pose que pour les lignes supplémentaires inutiles et gênantes au début du contenu. J'ai donc décidé d'étendre votre solution en supprimant uniquement les "nonBreakingSpaces" supplémentaires au tout début du texte avant que d'autres balises n'apparaissent:

function remove_empty_lines( $content ){

  // replace empty lines
$contentArr = explode('<',$content,2);
if (count($contentArr)==2) // only then  
{ 
    $contentArr[0] = preg_replace("/&nbsp;/", "", $contentArr[0]);
    $content = $contentArr[0].'<'.$contentArr[1]; 
}  
return $content;
}
add_action('content_save_pre', 'remove_empty_lines');
1
davidman77