WordPress

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

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

残念ながら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でフックします。

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

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

  • この記事を書いた人
  • 最新記事

wackey

Webディレクター・プロデューサーなどで大手企業サイトの構築に携わった後、インターネット広告営業やWebコンサルティングなどを行う。フリーランスを経て2012年にプラス・ムーブメント合同会社を設立。Webサイト・システムの制作やブロガーツアー・イベントなどの企画・運営を行う。地域ブログをまとめたLocketsというサービスの事業責任者としてビジネスを展開。 2015年にアジャイルメディア・ネットワーク株式会社に入社。 レビューズにてインフルエンサーマーケティング事業の立ち上げに関わり運営。またアンバサダープログラムの運営など多くの企業の支援をバックアップしていた。 現在プラス・ムーブメント合同会社を経営しつつ、新しい働き方について模索している。 主な著書に「アフィリエイターのための Web APIプログラミング入門(ビー・エヌ・エヌ新社)」がある。

-WordPress