追記です。
Contact Form 7 3.0.1はWordPress3.2以降でしたので、
Contact Form 7 2.4.6に入れ直しました。
入れ直しても、同じ現象が発生しています。
よろしくお願いいたします。
一度すべてのプラグインを無効にしてテーマをデフォルトのテーマ(Twenty Ten?)に戻して試してみてください。
さっそくのご回答ありがとうございます。
マルチサイトなので、ネットワーク全てのプラグインと
各サイトのプラグインを停止し、TwentyTenに戻して試してみましたが、
現象が再現しました。
「メール」「メール(2)」「メッセージ」では問題が発生、「フォーム」では発生しないとすると、値が配列で保存される(シリアライズされる)か文字列として保存されるかの違いが関係しているように思います。「a」に置き換わってしまう、この「a」はシリアライズされた配列の1文字目から来ているものかもしれません(2文字目以降がどこへ消えたかはわかりませんが)。
実際にはデータベースに何が保存されているのでしょうか。それを確認すれば保存時の問題なのか出力時の問題なのか切り分けまではできそうです。
サーバーは何をお使いでしょうか。どこかのホスティングサービスですか?
再度のご回答ありがとうございます。助かります。
サーバー管理をお願いしている会社に、phpmyadminの情報を知らせてもらうようお願いをしましたので、明日には確認出来るかと思います。
わかりましたらまたご報告させていただきますので、よろしくお願いいたします。
ちなみに、サーバーは大手レンタルの類ではありません。
MySQLの文字コードがEUCですので、php_valueで各種設定をしています。
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_flag mbstring.encoding_translation Off
php_value default_charset UTF-8
contact form 7以外は(多分)正常に使えています。
昨日はありがとうございました。
DBの中身がわかりましたので、ご報告いたします。
「wp_contact_form_7」テーブルの「mail」セルの中身です。
a:7:{s:7:"subject";s:54:"メッセージが届きました";s:6:"sender";s:18:"ポスト";s:4:"body";s:41:"[your-name]
[your-email]
[your-message]";s:9:"recipient";s:16:"hogehoge@hoge.jp";s:18:"additional_headers";s:0:"";s:11:"attachments";s:0:"";s:8:"use_html";s:0:"";}
設定画面の表示は「a」なのですが、DBには最後に更新した内容(日本語)が記載されていました。
先ほどテストで新しいフォームを作りDBを見ながらテストを行った結果です。
設定画面で新しいフォームを作成
保存するとDBに新規フォームの情報(日本語込み)が書き込まれる
↓
日本語が含まれていた場合、設定画面の表示が「a」になる
表示は「a」でもDBには日本語が登録されている
↓
設定画面で「a」の表示のまま上書きしてしまうと、DBのデータが「a」になる
よろしくお願いいたします。
文字コード設定に関係した問題があるようですね。Contact Form 7 に限らず他でも見えていない問題が生じていると思います。
WordPress の文字コードは何に設定されているんでしょうか。
a:7:{s:7:”subject”;s:54:”メッセージが届きました”;s:6:”sender”;s:18:”ポスト”;s:4:”body”;s:41:”[your-name]
[your-email]
[your-message]”;s:9:”recipient”;s:16:”hogehoge@hoge.jp”;s:18:”additional_headers”;s:0:””;s:11:”attachments”;s:0:””;s:8:”use_html”;s:0:””;}
「ポスト」で18バイトというのは、UTF-8 で扱われているのではなさそうですが。
# 今使っているサーバーを使わなければならない特別な理由がなければ、ほかに移った方が楽でしょう。
確認いただきましてありがとうございました。
WordPressの文字コードはUTF-8です。
「ポスト」で18バイトというのは、UTF-8 で扱われているのではなさそうですが。
s:18というのは文字列の長さだったのですね。
元々は「○○○ポスト」と個人名の漢字3文字が入っていたので、
投稿する際に削除してしまいました。
メッセージ、メールアドレスも同様に変更してしまっています。
大変失礼いたしました。
例えば、上記のバイト数があっていても、文字コードが原因でしょうか?
上記の件解決いたしましたので、ご報告です。
ご指摘の通り、メールフォームプラグイン以外に、
ウィジェットの各タイトルを変換できない等の不具合がありました。
php.iniの「func_overload」設定を7から0にすることで、
諸々の問題が解消いたしました。
助言をいただきまして、ありがとうございました。