WordPress の コメントをカスタマイズ
当ブログのコメント欄を修正しました。
コメント欄について今まで気にしていなかったのですが、先日はじめてコメントを頂いたことをきっかけに、「メールアドレス入力って敷居が高いよね」とお父ちゃんと話しまして。
目次
設定画面
設定>ディスカッション
まずはメールアドレスの必須入力を解除
名前も必須じゃなくなっちゃうけどまあいいや。
コメントフォームのカスタマイズ
お父ちゃんから「”コメントのみでもOK”を追加して」とリクエストがありました。
comment.php
外観>テーマの編集>コメント(comment.php)
72~77行目 に発見。( テンプレートやバージョンによって微妙に違ったりすると思います。当ブログは twentysixteen ver1.0 をカスタマイズしています。)
1 2 3 4 5 6 |
<!--?php comment_form( array( 'title_reply_before' => '<h2 id="reply-title" class="comment-reply-title">', 'title_reply_after' => '</h2>', ) ); ?--> |
ここで、修正したい項目のパラメータを渡してあげれば良いようです。
デフォルトでの設定を確認してみると、こんなんなっとりました。(wp-includes/comment-template.php)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
$defaults = array( 'fields' => $fields, 'comment_field' => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" aria-required="true" required="required"></textarea></p>', /** This filter is documented in wp-includes/link-template.php */ 'must_log_in' => '<p class="must-log-in">' . sprintf( /* translators: %s: login URL */ __( 'You must be <a href="%s">logged in</a> to post a comment.' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>', /** This filter is documented in wp-includes/link-template.php */ 'logged_in_as' => '<p class="logged-in-as">' . sprintf( /* translators: 1: edit user link, 2: accessibility text, 3: user name, 4: logout URL */ __( '<a href="%1$s" aria-label="%2$s">Logged in as %3$s</a>. <a href="%4$s">Log out?</a>' ), get_edit_user_link(), /* translators: %s: user name */ esc_attr( sprintf( __( 'Logged in as %s. Edit your profile.' ), $user_identity ) ), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>', 'comment_notes_before' => '<p class="comment-notes"><span id="email-notes">' . __( 'Your email address will not be published.' ) . '</span>'. ( $req ? $required_text : '' ) . '</p>', 'comment_notes_after' => '', 'id_form' => 'commentform', 'id_submit' => 'submit', 'class_form' => 'comment-form', 'class_submit' => 'submit', 'name_submit' => 'submit', 'title_reply' => __( 'Leave a Reply' ), 'title_reply_to' => __( 'Leave a Reply to %s' ), 'title_reply_before' => '<h3 id="reply-title" class="comment-reply-title">', 'title_reply_after' => '</h3>', 'cancel_reply_before' => ' <small>', 'cancel_reply_after' => '</small>', 'cancel_reply_link' => __( 'Cancel reply' ), 'label_submit' => __( 'Post Comment' ), 'submit_button' => '<input name="%1$s" type="submit" id="%2$s" class="%3$s" value="%4$s" />', 'submit_field' => '<p class="form-submit">%1$s %2$s</p>', 'format' => 'xhtml', ); |
今回修正したいのは、コメント前のテキストなので、「’comment_notes_before’」です。
1 |
'comment_notes_before' => '<p class="comment-notes"><span id="email-notes">' . __( 'Your email address will not be published.' ) . '</span>'. ( $req ? $required_text : '' ) . '</p>', |
なので、この部分を書き換えて・・・
1 |
'comment_notes_before' => '<p class="comment-notes"><span id="email-notes">メールアドレスが公開されることはありません。コメントのみでもOKです。</span></p>', |
さきほどのphpに追加。
できた!
あんまり変わらないけど
その他もこんな感じでパラメータをいじることで変更できるようです。
補足
comment_notes_beforeにあった下記は翻訳するphp文のようなので、今回は削除してそのまま日本語で書き換えてしまいました。
1 |
__( '' ) . ( $req ? $required_text : '' ) |
WordPressの日本語への翻訳設定は /wp-content/languages/ja.po にありました。
1 2 3 |
#: wp-includes/comment-template.php:2165 msgid "Your email address will not be published." msgstr "メールアドレスが公開されることはありません。" |
初めまして。twentysixteenのコメントカスタムで検索していてお伺いしました。
上記参考にさせていただいて、非常に分かりやすくうまくカスタムできました。
こちらで、メールアドレス欄とウェブサイト欄の削除する方法を探しているのですが、コードはご存じないでしょうか?
検索して入れるとコメント欄自体が消えてしまい困っております。
array(
から設定変更では駄目でしたので、ぶしつけで申し訳ありませんがお分かりにならないでしょうか。
初めまして。ちょっと試してみたのですが、こちらのページを参考に、function.phpに下記を追加した所、このブログでは消すことが出来ました。
(今は表示を戻しています)
■参考にさせて頂いたページ
WordPressのコメント入力欄から不要な項目を消す方法
http://denno-sekai.com/comment-column-edit/
■function.php に追加したコード
// コメントからEmailとウェブサイトを削除
function my_comment_form_remove($arg) {
$arg[‘url’] = ”;
$arg[‘email’] = ”;
return $arg;
}
add_filter(‘comment_form_default_fields’, ‘my_comment_form_remove’);