WordPressには無数のプラグインがあり、どのプラグインをインストール・有効化するかウェブサイトの機能により変わってきます。
ただ、必ず有効化してほしい「WP Multibyte Patch」というプラグインがあります。このプラグインを有効化することで日本語文字列を正しく取り扱えるように適切に処理してくれます。
有効化するメリットは何か、有効化しなかった場合に発生する問題についてご紹介します。
目次
WP Multibyte Patchとは
日本語ファイルの取り扱いを正しくしてくれるプラグインです。公式プラグインには次のような説明があります。
WordPress 日本語版パッケージのためのマルチバイト機能の拡張。
WP Multibyte Patch – WordPress プラグイン | WordPress.org 日本語
ちょっとわかりづらいですね。開発者のページを見てみると、詳しい説明がありました。
WordPress のマルチバイト文字の取り扱いに関する不具合の累積的修正と強化を行うプラグインです。英語圏で作られた WordPress を日本語環境で正しく動作させるために必要となる機能を網羅していますので、なんらかの対策を行っていない場合は導入をおすすめします。
WP Multibyte Patch – EastCoder;
「なんらかの対策」を個別で行うケースはほとんどないと思うので、日本語でWordPressを構築するならばインストールしておいた方がよさそうな文章です。
ここで説明するまでもなく、開発者公式ページ内に「主な機能」として記載されていますのでそちらを見てほしいのですが、特に重要だと思う機能を紹介します。
全角スペースを半角スペースに変換してくれる検索機能
まず検索機能について。検索する際に区切り文字に全角スペースをつかった場合でも、半角スペースに自動的に変換してくれます。
無効化(WP Multibyte Patchを有効化していない)の場合は、全角スペースが文字列として扱われ、検索結果にヒットしません。
一方、有効化した場合は全角スペースで検索した場合でも自動的に半角スペースに変換してくれ、検索結果に条件に一致したページが表示されました。
検索するときに必ずしもみんなが半角スペースを使っているとは限りません。Googleも全角スペースを半角スペースとみなして検索結果を返しているため、全角スペースを使って検索している人も少なくないと考えられます。特にiPhoneの場合、iOS13以降で「スマート全角スペース」という機能が追加されたので、意図せず全角スペースを使う頻度が上がっている可能性が考えられます。
スマート全角スペースとは入力中のテキストから判別して「全角スペース」と「半角スペース」を自動的に切り替える機能のことです。
iPhone – スマート全角スペースの設定(オン/オフ) – iPad | PC設定のカルマ
検索機能が使われることが想定されるサイトの場合、全角スペースを半角スペースに変換してくれるこの機能は地味に重要です。
日本語ファイルを変換してくれるファイル名サニタイズ機能
ファイル名に日本語が含まれる場合に、アップロードもしくはメール添付された際にmd5に変換(ランダムな文字列)したファイル名に書き換えます。
これはどういうことかと言うと、例えば以下のような例です。
- WordPressのメディアに画像をアップロードして画像を利用・参照したい
- アップロードする画像ファイル名は「ハイファイブクリエイト_ロゴ.jpg」とする
- WP Multibyte Patchが有効になっていると、アップロードしたファイル名は「193cb8758e74409056afbf2956f5aba7.jpg」となる
- WP Multibyte Patchが無効の場合は、変換されずにそのまま「ハイファイブクリエイト_ロゴ.jpg」となる
これだけ見ると、「ファイル名が日本語の方が管理がしやすいのでは?」と思うかもしれません。しかし、日本語ファイルとしてアップロードされたとしても、ダウンロード時やバックアップ時に文字化けや文字コード不一致によりファイルが参照・生成できないといった問題が発生します。
これはどんな時に問題になってくるかというと、例えばサーバー移転です。
サーバー移転時に日本語ファイルのみ個別対応が必要になる
日本語ファイルをアップロードして問題なく利用・参照できていればそのときはそれでいいのですが、別のサーバーへ移転する際には日本語ファイルを含む全データを移すため、複製時に日本語ファイルだけ正しく生成されなかったり、データ転送時に文字化けが発生して新しいサーバーで参照できない、という問題が発生することがあります。
実際にこのようなことが発生しました。
サーバー移転のため、旧サーバー(接続はFTPのみ)から新サーバーへファイルを持っていく際に、まずはBackWPUpというバックアッププラグインを使ってデータベース、ウェブデータ一式の圧縮したバックアップデータを作成。その後、FTP経由でダウンロードして新サーバーへアップロード後に解凍して復旧したところ、日本語ファイルだけファイル名が変わっており、正しく参照されませんでした。
バックアップデータを取得する際、データが圧縮されるのですが、解凍してみると、日本語を使用したファイル名が、バックアップ時にファイル名が置き換わってしまう現象が起きているようです。
WordPressに日本語ファイル名をそのまま使用しないほうが良い理由
次に、日本語ファイルを正しく転送できるよう、バックアップデータは利用せずに、FTPクライアント側でエンコーディングを強制的にUTF-8に設定し画像フォルダをダウンロード&アップロード。それにより、日本語ファイルも正しくアップロード完了しました。おおよその画像は正しく表示されていたものの、なぜか一部の画像やPDF等の日本語ファイルが表示されません。
一部の非表示となっている日本語ファイルを確認したところ、ファイル名には問題ないものの、エンコードして確認すると一部の文字列が異なっていました。異なった文字列は濁点に限定されていることから、WindowsとMac間で発生するOSのファイルシステムの違いが原因と判明しました。
2バイト文字=日本語の濁点が入力されたと思しき部分が「?」と表示されたり、かな/カナ文字と濁点部分が分離されて表示される現象です。
MacOS環境からWindows環境へファイルを横断する際に発生する文字化け問題について – サンエイ スタッフブログ
よって、MacではなくWindowsを使ってダウンロード&アップロードすることにより一部非表示となっていた日本語ファイルに関しても無事表示され解決しました。
このように、マルチバイト文字である日本語ファイルの取り扱いはサーバー移転時に問題発生の原因になりやすく、対応に手間がかかるのです。画像容量が少なければいいですが、数GB以上になると何度もトライ&エラーするためとても時間がかかります。
そもそもウェブにアップする画像には日本語ファイルを利用しないのがいいんですが、我々には当たり前であっても、依頼側や担当者にはよくわからないこともありますからね……。
WordPressを使うならば必ず有効にするべきプラグイン
他にも、文字列カウント方式の変更や、個別の設定ファイル設定等、機能がありますが今回は特に重要と思われる2点に絞ってご紹介しました。
「今後絶対にサーバー移転はしない!」という場合は、日本語ファイル名のままで運用してもいいですが、仮にそう思っていたとしても何が起こるかわからないため、日本語ファイル名だった場合はファイル名サニタイズ機能によって変換してくれるWP Multibyte Patchを有効にしておくのが正しい選択です。
- サーバーに不正アクセスが発生した
- 容量が足りなくなった
- アクセスが増えたり、負荷が高めの処理を行うため性能のいいサーバーが必要になった
- パフォーマンスのいいサーバーに乗り換えたい
- ウェブサーバーとメールサーバーを分離するため、ウェブサーバーはもっと安価なところで十分
- 使っているサーバー会社のプランが廃止されるため
移転する理由も様々で、突然やってくることも多いです。その時に慌てたり、移転時に問題が発生しないよう、WP Multibyte Patchを有効化しておくことをおすすめします。また、移転時のことだけでなく、検索時のスペース問題についても解決してくれるので、やはり有効化しておくことは必須です。
ご相談いただくWordPressの中身を確認すると、WP Multibyte Patchがあえて無効化されているケースもあり、制作側はもちろんのこと、依頼側においてもこのプラグインの重要性を知っておいていただけたらと思います。
コメントを残す