WordPressのコメント欄を英語に

WordPress のコメント欄のラベルを英語にしてみます。昔は日本語化されてなくすべて英語だったようですが、今は日本語にローカライズされていて日本語で「名前」「コメント」などが出ます。それを英語に戻します。

初期状態の WordPress を英語にするので、テーマなどによってはすべての項目を英語にすることができないかもしれません。あらゆる部分を英語化したい場合は以下のリンクを参考にコード等加えてください。

参考:関数リファレンス/comment form

comment-form

コメント欄を英語化

テーマの comments.php に変更を加えます。

初期状態でであれば以下のようなコードが下のほうにあるはずです。

comment_form();

これを変更します。comment_form() はコメント欄を出力しているので、これをいったん消し、いろいろ変更を加えたうえで新たに出力しなおします。

まず、何も変更しない場合、以下のコードのようにコメント記入欄は出力されています。見やすいように改行等増やして書いています。

初期値

$args = array(

    //大見出し
    'title_reply' => __( 'Leave a Reply' ),

    //前文「メールアドレスが公開されることはありません。」
    'comment_notes_before' =>
       '<p class="comment-notes">' .
       __( 'Your email address will not be published.' ) .
       ( $req ? $required_text : '' ) .
       '</p>',

    //コメント記入欄ラベル
    'comment_field' =>
        '<p class="comment-form-comment"><label for="comment">' .
        _x( 'Comment', 'noun' ) .
        '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true">' .
        '</textarea></p>',

    'fields' => array(

         //名前欄ラベル
         'author' =>
             '<p class="comment-form-author">' .
             '<label for="author">' .
             __( 'Name', 'domainreference' ) . 
             '</label> ' .
             ( $req ? '<span class="required">*</span>' : '' ) .
             '<input id="author" name="author" type="text" value="' . 
             esc_attr( $commenter['comment_author'] ) .
             '" size="30"' . $aria_req . ' /></p>',

         //メールアドレス欄ラベル
         'email' =>
             '<p class="comment-form-email"><label for="email">' . 
             __( 'Email', 'domainreference' ) .
             '</label> ' .
             ( $req ? '<span class="required">*</span>' : '' ) .
             '<input id="email" name="email" type="text" value="' . 
             esc_attr(  $commenter['comment_author_email'] ) .
             '" size="30"' . $aria_req . ' /></p>',

         //ウェブサイト欄ラベル
         'url' =>
             '<p class="comment-form-url"><label for="url">' .
             __( 'Website', 'domainreference' ) . 
             '</label>' .
             '<input id="url" name="url" type="text" value="' . 
             esc_attr( $commenter['comment_author_url'] ) .
             '" size="30" /></p>'
    ),

    //送信ボタンラベル
    'label_submit' => __( 'Post Comment' )

);

今回注目するのは赤字の部分。大部分がアンダーバー2本(__)で始まっていますが、これらが各項目のラベルを日本語に変換して出力しています。つまりここを変更すれば良いということです。

変更するときのポイントは赤字の部分丸ごと変更するということです。カッコの中身だけ変更すればよいというわけではありません。一つの例にすぎませんが以下のようなコードで赤字部分を丸ごと入れ替えて英語化します。

comments.php

<?php
$args = array(

    'title_reply' => 'Leave a Reply',

    'comment_notes_before' =>
       '<p class="comment-notes">' .
       'Your email address will not be published. Required fields are marked *' .
       '</p>',

    'comment_field' =>
        '<p class="comment-form-comment"><label for="comment">' .
        'Comment' .
        '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true">' .
        '</textarea></p>',

    'fields' => array(
         'author' =>
             '<p class="comment-form-author">' .
             '<label for="author">' .
             'Name' . 
             '</label> ' .
             ( $req ? '<span class="required">*</span>' : '' ) .
             '<input id="author" name="author" type="text" value="' . 
             esc_attr( $commenter['comment_author'] ) .
             '" size="30"' . $aria_req . ' /></p>',

         'email' =>
             '<p class="comment-form-email"><label for="email">' . 
             'Email' .
             '</label> ' .
             ( $req ? '<span class="required">*</span>' : '' ) .
             '<input id="email" name="email" type="text" value="' . 
             esc_attr(  $commenter['comment_author_email'] ) .
             '" size="30"' . $aria_req . ' /></p>',

         'url' =>
             '<p class="comment-form-url"><label for="url">' .
             'Website' . 
             '</label>' .
             '<input id="url" name="url" type="text" value="' . 
             esc_attr( $commenter['comment_author_url'] ) .
             '" size="30" /></p>'
    ),

    'label_submit' => 'Send'

);

comment_form($args);
?>

comment.form() で最後に出力します。上のコードを適用した場合、以下の画像のようなコメントフォームになります。

english-comment-form

当然、英語以外にも赤字部分を変更すればラベルの表示をいろいろ変更することが可能です。

まとめ

comments.php のこの出力箇所を変更すれば、Email の入力欄自体を消したり、前文の「メールアドレスが公開されることはありません。」を「コメントはお気軽にどうぞ」など変更することが可能です。もっと言えば赤字以外の HTML の構造や属性も変更が可能です。

当ブログも現状、英語化&多少の変更を加えています。初期状態は嫌だ、ということがあれば変更するのも楽しいかもしれないです。

Top