【1行で解決】WordPressで日本語ファイルを文字化けせずアップロード

Wordpress Wordpress

WordPressを使ってCMSを構築し、納品した後、メディアアップロードでエクセルや、PDFファイルをアップロードした時に、「ファイル名が文字化けしている」と言われたため、日本語のファイル名でも文字化けせずにアップロードできるように調査しました。

WP Multibyte Patchで日本語のファイル名が文字化け

タイトルには「文字化け」と書きましたが、実は文字化けしているのではなく、「WP Multibyte Patch」プラグインを有効化していると日本語のファイル名をmd5ハッシュ値に変換し、サニタイズ化しているからだそうです。

このサニタイズ化を無効化し、日本語のファイル名をそのまま利用するには次のように修正します。

  1. /wp-content/plugins/wp-multibyte-patch/wpmp-config-sample-ja.php を/wp-content/ 直下にコピー
  2. コピーした、wpmp-config-sample-ja.phpを wpmp-config.phpというファイル名に変更
  3. wpmp-config.php を編集し、$wpmp_conf[‘patch_sanitize_file_name’] の値をtrueからfalseに変更
/* 機能を個別に有効化、無効化できます。有効化するには true を、無効化するには false を指定してください。 */
$wpmp_conf['patch_wp_mail'] = true;
$wpmp_conf['patch_incoming_trackback'] = true;
$wpmp_conf['patch_incoming_pingback'] = true;
$wpmp_conf['patch_wp_trim_excerpt'] = true;
$wpmp_conf['patch_wp_trim_words'] = true;
$wpmp_conf['patch_get_comment_excerpt'] = true;
$wpmp_conf['patch_dashboard_recent_drafts'] = true;
$wpmp_conf['patch_process_search_terms'] = true;
$wpmp_conf['patch_admin_custom_css'] = true;
$wpmp_conf['patch_wplink_js'] = true;
$wpmp_conf['patch_word_count_js'] = true;
$wpmp_conf['patch_force_character_count'] = true;
$wpmp_conf['patch_force_twentytwelve_open_sans_off'] = true;
$wpmp_conf['patch_force_twentythirteen_google_fonts_off'] = false;
$wpmp_conf['patch_force_twentyfourteen_google_fonts_off'] = false;
$wpmp_conf['patch_force_twentyfifteen_google_fonts_off'] = false;
$wpmp_conf['patch_sanitize_file_name'] = false; //ここをTrueからfalseに変更
$wpmp_conf['patch_bp_create_excerpt'] = false;

これで日本語のファイル名をアップロードしても文字化けせず表示されるようになります。

[参考記時]
[WordPress] WordPressで日本語名のファイルをアップロードする

サーバー移行時に日本語のファイル名の画像がリンク切れになる

WordPressのサーバー移行作業で、なぜか日本語のファイル名だけが404エラーになるという現象がありました。

この場合、Filezillaの転送設定を「UTF-8強制」にするときちんと表示出きるようになりました。

推測ですが、移行元のサーバーは文字コードがUTF-8で、私はWindowsで作業をしているので、FTPでダウンロードした際、Shift-jisに変換され、新サーバーにはShift-jisの文字コードのファイル名でアップロードされた事が原因だと思います。

Filezillaでファイル名の文字コードをUTF-8に強制する

Filezillaでファイル名の文字コードをUTF-8に強制する

コメント