Xserverエックスサーバでwordpressのカスタムフィールドテンプレートが文字化けした。エックスサーバでwordpressのカスタムフィールドテンプレートをいじる機会があった。カスタムフィールドテンプレートはわかりやすいマークダウン記法みたいな書き方でカスタムフィールドを色々と設定できる優れものなプラグイン。このプラグインなのだけれど開発環境から本番環境にアップロードすると使えなくなる現象に遭遇した。具体的にはカスタムフィールドテンプレートでテンプレートをロードさせようとするとロードした文字が化けてしまっていること。これじゃあせっかくのテンプレートが使い物にならないです。調べてみるとサーバからのレスポンスヘッダに文字コードが指定してある。charset=Shift_JISこれがどうにもこうにも原因らしい。文字コードはすべてUTF-8で統一しているはずで、どこかにShift-JISなんて指定したか、とか思いながら確認してみた。wordpressの管理画面にある文字コードphp.iniのmbstring.internal_encodingプラグイン本体のコード疑わしきは調べていったんだけれど解決できず。テスト環境ではうまくいっているのだろうからこれはやっぱり本番環境のエックスサーバがおかしいのだろうということでさらに疑ってみた。php.iniが編集できる柔軟さは認めるのだけれど、Shift-JISを吐かれては困る。調べたところapacheが.phpに対してheaderをデフォルトで吐き出す設定があることにたどり着いた。同時に湯バード先生からも同じトコロを指摘される。通常この項目はapacheのhttpd.conf辺りで設定するのだけれど.htacessでも設定できるらしい。いうわけで以下の項目をwordpressのドキュメントルートにある.htacess追記してみた。UTF-8この設定で無事に治りました。注意すべきは.htaccessはworpdressのカスタムURLストラクチャとかを書き換えることがあるのでその際には再度同じ文を書き加える必要があること、かな。忘れないようにしよう。このような問題だとなかなか対処しづらいと思う。apacheのレスポンスヘッダから分かったのだけれど文字化けしたときにはmbstringを見て下さい、ってエックスサーバに書いてあったりして困る。これ恐らくデフォルトの文字コードをShift-JISで、とかに設定されたのかなと推測するけれどそれが困りました。問い合わせても対応できかねます、で終わっちゃうだろうし。posts:wordpressのsingle.phpとかでquery_postsを自前で実行した後に元のpostを参照したかったWordPressで画面が真っ白になってしまうエラーsvnでディレクトリのみを管理したかったWordPressで大きいサイズのファイルをアップロードできないwordpressでリモートにある環境にデータベースを転送したいtesttestwordpressで許可されないメディアをアップロードしたいときwordpressでpermalinkがおかしくなったwordpressで子テーマが有効にならない。キャッシュを使ってwordpressを軽くしてみる関連記事21wordpressで許可されないメディアをアップロードしたいときwordpressで許可されないメディアをアップロードしたいとき。この辺の設定っていうのは、functions.phpに書かれているらしい。LTS少し流行は過ぎてしまったのですが、UbuntuのnginxでWordPressを動かしたのでメモ。リバースプロキシこの投稿へのコメントコメントはありません。コメントをキャンセルこの投稿へのトラックバックトラックバックはありません。キャンセル投稿を送信できませんでした。メールアドレスを確認してください。メール送信チェックに失敗しました。このブログではメールでの投稿共有はできません。%d人のブロガーが「いいね」をつけました。