web-dev-qa-db-ja.com

投稿者が投稿を更新したときに空の行( )を削除する

TinyMCEを使用して段落の間に空行を追加するときはいつでも、 文字エンティティが追加されます。

著者が投稿を更新したときはいつでもこのキャラクターのすべてのインスタンスのコンテンツを削除することができますか(save_post)。

2

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

私はあなたの解決策を気に入っていましたが、コンテンツ構造のさらに下の部分で ""が合法であるか意図されている可能性があります。問題は、少なくとも私にとっては、コンテンツの冒頭にある不要で迷惑な余分な行がある場合にのみ発生します。それで私はあなたの解決策を拡張することにしましたそれ以上のタグが発生する前にテキストの最初に余分な "nonBreakingSpaces"を削除するだけです:

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