【解決済】WP Customer Reviewsの日本語化に失敗して表示されない時にやったこと
訳あってレビュー機能付きのワードプレスサイトを作成しています。とあるサービスの口コミ投稿サイトを作るイメージです。
使用するプラグインは手軽にレビュー投稿機能が可能な「WP Customer Reviews」。とても簡単に5つ星形式のレビュー投稿を受け付けることができるのですが、残念ながら完全には日本語対応されておらず、投稿ボタンなどに英語が表示されます。
そこで「WP Customer Reviews」日本語化させるために参考にさせていただいたのが45 For Trashさんのサイト。
プラグインを日本語対応させる手順はこちらを見ていただいたら書かれていますが、私の環境でやってみるとプラグイン投稿画面が全く表示されず、ショートコードを記入したところが反映されないというエラーになってしまいました。
(プラグインのバージョンは3.4.1)
そこでいろいろと試行錯誤してやってみた対応策をメモしておきます。
WP Customer Reviewsを日本語化したらエラーになるのは文字コードが原因かも
もしあなたが「WP Customer Reviews」のhtmlファイルとjsファイルを手順通り正しく編集してもうまく表示されない場合は、文字コードが変わってしまっていないかを疑ってみてください。私の場合はこれで解決しました。
文字コードを見直す場所
しごうさんの手順で示されている以下のファイルに加えて、/wp-customer-reviews内の「wp-customer-reviews-3.php」の文字コードもUTF8に統一する必要があるようです。
/wp-customer-reviews/include/templates 内
- frontend_review_form.html
- frontend_review_form_rating_field.html
- frontend_review_form_review_field.html
- frontend_review_item_aggregate.html
/wp-customer-reviews/js 内
- wp-customer-reviews.js
「wp-customer-reviews-3.php」の文字コードが違っていても動くのは動きますが、エラーメッセージが文字化けします。
改行コードの変更方法
メモ帳やterapadといったテキストエディタでファイルを読み込んで設定してください。
「ファイル」⇒「名前を付けて保存」⇒文字コードをUTF-8に変更して保存。
「ファイル」⇒「文字/改行コード指定保存」⇒文字コードを「UTF-8」に変更して保存。
改行コードは特に変更していませんが、2~3回テスト投稿してみると問題なく動作しているようです。
それでも表示されない場合
投稿画面に記入するショートコードの形式が誤っている可能性があります。
ひとまずこういったパラメータが含まれる長いショートコードではなく、
[WPCR_SHOW POSTID="ALL" NUM="5″ PAGINATE="1″ PERPAGE="5″ SHOWFORM="1″ HIDEREVIEWS="0″ HIDERESPONSE="0″ SNIPPET="" MORE="" HIDECUSTOM="0″ ]
こちらの短いショートコードで表示されるかチェックしてみてください。
[WPCR_SHOW]
最低限のショートコードで機能することを確認したら、パラメータをいじって好みの設定にしてみましょう。
使い方・パラメータの設定方法
プラグインの取説的なテキストをGoogle翻訳をかけただけのガバ翻訳ですが、意味は分かると思うので引用しておきます。
ご参考に。
使い方
投稿またはページを編集するときは、WPカスタマーレビューの設定ブロックまでスクロールして有効にします。
このセクションが表示されない場合は、投稿の編集時に[画面オプション](右上)をクリックしてオンにします。ショートコード(WordPressページエディター内で使用)
次のショートコードは、任意のページのコンテンツで使用できます。[WPCR_SHOW POSTID = “ALL" NUM = “5" PAGINATE = “1" PERPAGE = “5" SHOWFORM = “1" HIDEREVIEWS = “0" HIDERESPONSE = “0" SNIPPET = “" MORE = “" HIDECUSTOM = “0" ]
最新のレビューを表示できます。以下の説明:
POSTID = “ALL"はすべての投稿/ページからの最近のレビューを表示します。POSTID= “123"は投稿/ページからの最近のレビューを表示しますID#123
NUM = “5"は最大5件のレビューを表示します。
PAGINATE = “0"は、レビューのページネーションを無効にします。
PERPAGE = “10"は、一度に10件のレビューを表示します。
SHOWFORM = “1"は、新しいレビューを追加するフォームを表示します。これは、POSTIDが「ALL」に設定されていない場合にのみ機能します。
HIDEREVIEWS = “1"はレビュー出力を非表示にします。フォームのみを表示するために使用できます。
HIDERESPONSE = “1"は、すべてのレビューに対する管理者の応答を非表示にします。
SNIPPET = “140"は、レビューの最初の140文字のみを表示します。
MORE = “詳細を表示"は、レビューへのリンクとともに “…詳細を表示"を表示します。 SNIPPETを使用してレビューがトリミングされた場合にのみ表示されます。
HIDECUSTOM = “1"は、ショートコード出力のすべてのカスタムフィールドを非表示にします。
PHP関数(テーマ/テンプレートファイルで使用)
より高度な実装を作成するには、テーマ/テンプレートファイルでショートコードを使用できます。 WordPressのテーマ/テンプレートのカスタマイズに慣れている開発者なら誰でも支援できます。例:<?php echo do_shortcode( '[WPCR_SHOW POSTID = "ALL" NUM = "3"]'); ?>
良く分からない場合は、商品やサービス固有のレビューを募集したり表示したいページごとに下記のコードを書いておいたら大体OKかな。
[WPCR_SHOW POSTID = “123" NUM = “5" PAGINATE = “1" PERPAGE = “5" SHOWFORM = “1" HIDEREVIEWS = “0" HIDERESPONSE = “0" SNIPPET = “" MORE = “" HIDECUSTOM = “0" ]
ついでにエラーメッセージも日本語に変える
原因が文字コードだった場合、ここまでの修正でプラグインは正しく機能し、レビューの投稿ができる状態になっているはずです。
しかし、現在私が触っているバージョン3.4.1だとまだエラーメッセージに英語が残っているのでつぶしていきます。
/wp-customer-reviews/js 内の「wp-customer-reviews-3.php」
変更する文字列
- 「Please enter a valid email address.」を「正しいメールアドレスを記入してください」に
- 「You have failed the spambot check.」を「スパム防止のためチェックボックスをチェックしてください」に
何か所かあるので一括で置換した方が早いです。
これでエラーメッセージも日本語化できました。
いかがだったでしょうか。
私の環境ではこれでうまくいきましたが、どこかの誰かのお役に立てていたら幸いです。
ディスカッション
コメント一覧
文字コード(UTF-8)の情報をありがとうございます。おかげでphp,js初心者の私でも日本語化がうまくいきました。
ただ、iPhone/iPadでは、エラーメッセージが変更した日本語になるのですが、Win10だと英語のメッセージのままになります。
助言いただけると助かります。
waka tedさん
コメントありがとうございます!
いくらかお役に立てたようで良かったです。
>>Win10だと英語のメッセージのままになります。
う~ん、どういう事でしょうね。
なんとなく、ブラウザのキャッシュが原因のような感じがします。
Win10のPCのブラウザで対象のページを表示させ、スーパーリロードしてみるか、まだそのページを表示させたことがない別のブラウザでページを表示してみるとどうでしょうか?