以前使っていた、wp-contactformがうまく動かなくなったので、WP Contact Form IIIを入れてみました。こちらからダウンロードし、フォルダごとpluginディレクトリに入れ、プラグインを有効化します。そして、入れたい場所に[contactform]と半角で記載すれば良い。
- で、最初。それでページを見たら、2+2= とあるところが表示されておらず、「送信ボタンの上に何入れるんだろう?」と思ったですが、プラグインの設定で、「設定の更新」を行うと表示されるようになりました。
- メイルを送信すると、送信者と表題だけが文字化けします。検索してみると、mb_encode_mimeheader()関数を使う事が書いてあったのですが、私の場合、それだけではダメで、下記のようにしました。
wp-contactform.phpを編集180行目あたり、wpcf_callback関数の中の下記部分を書き換えました。
- 旧)$headers .= “From: $name <$email>\n”;
- 新)$headers .= “From:” .mb_encode_mimeheader(mb_convert_encoding($name,’JIS’,’auto’)).” <$email>\n”;
- ————
- 旧)mail($recipient, $subject, $fullmsg, $headers);
- 新)mail($recipient, mb_encode_mimeheader(mb_convert_encoding($subject,’JIS’,’auto’)), $fullmsg, $headers);
mimeheaderにエンコードする前に文字コードの変換が必要なようです。