英数字の半角全角を整える

記事に全角英語や半角カタカナが混ざってしまうときがあります。
以下のコードをWordressのfunctions.phpに記述しておくと便利です。

/* 投稿内容を自動変換するフィルターフック */
function convert_content( $data ) {
    $convert_fields = array( 'post_title', 'post_content' );
    foreach ( $convert_fields as $convert_field ) {
        if ( isset( $data[$convert_field] ) ) {
            $data[$convert_field] = mb_convert_kana( $data[$convert_field], 'aKV', 'UTF-8' );
        }
    }
    return $data;
}
add_filter( 'wp_insert_post_data', 'convert_content' );

コードの解説


mb_convert_kana() は、PHPの多バイト文字列関数で、文字の全角・半角変換を行います。

$data[$convert_field] は、変換対象となる元の文字列(例:投稿タイトルや本文)です。

  • ‘aKV’ は変換オプションです。
  • ‘a’: 全角英数字を半角に変換します。
  • ‘K’: 全角カタカナを半角カタカナに変換します。
  • ‘V’: 濁点付きの文字を1文字で表現します(例:ガを カ + ゛ にしない)。
  • ‘UTF-8’: 文字コードを指定しています。

return $data;

変換後の $data 配列を返します。この戻り値が、WordPressによってデータベースに保存されます。。

このadd_filterによって、convert_content 関数が常に実行され、ユーザーが入力した投稿タイトルと本文が、全角英数字と全角カタカナが半角に変換された状態でデータベースに保存されるようになります。

上部へスクロール