WordPressのRSSでエラー(08って制御文字ってなんやねん?)という時の対策方法

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

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

https://tech.cookbiz.co.jp/wordpress-798

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

 

今回は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でフックします。

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

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

この記事を書いた人

脇村 隆

Web制作に携わって24年。商工会や自治体など公的機関のWebサイト制作・運用を14年にわたり支援してきました。目的の整理から、WordPressでの構築、公開後の運用、AIを使った業務の効率化まで、一人の担当者として一貫してお手伝いします。
横浜・あざみ野を拠点に活動しています。