というわけで、こういうことがあった時は該当文字を削除するとかで対応しちゃうのですが、根本的な対策方法が無いのかな、と思って探してみました。

残念ながらsublime textとかでfeedで出力された内容を開いて治すという方法が主流の中こんな記事を見つけました。

うちのWordPressのRSSフィードでエラーが出るのはどう考えてもASCII制御文字が悪い!

はい、こういうソリューションを期待していました。

 

今回はfunctions.phpに以下のコードを追記しました。

function remove_ascii( $data ) {
$ascii = ‘/[\x08]/’;
$data[‘post_content’] = preg_replace($ascii, ”, $data[‘post_content’]);
return $data;
}
add_filter( ‘wp_insert_post_data’ , ‘remove_ascii’ , 10, 1);
view rawWP Delete ASCII Code hosted with ❤ by GitHub

記事の保存前に該当する文字列を削除する処理を書き、wp_insert_post_dataでフックします。

というわけで、これを追加してみました。

他にも何かありそうなので、これで様子を見ます。