Wordpressのコメント投稿フォームにオリジナルの項目を追加したり、デザインを変更したりするのに割と苦労したので、備忘録としてまとめておきます。
もくじ
Wordpressの標準のコメントフォーム
Wordpress標準のコメントフォームは左記のようなものになります。
名前・メール・URLを入力させる箇所があります。
メールアドレス・URLなどはスパムURLを仕込まれる可能性があるので入れたくない場合もあると思います。
Wordpressのコメントフォームの項目(名前・メールアドレス・URL・コメント)の入力順を変更する方法
Wordpressのコメントフォームでは、例のように「コメント入力欄→名前→メールアドレス→ウェブサイト」という順番で表示されます。
これを「名前→メールアドレス→ウェブサイト→コメント入力欄」のように変更する方法は下記の通りです。
function.phpに加筆して利用します。
/** * コメント入力欄の表示順を変更する * * @param array $fields array * @retuen array $fields array */ function wp34731_move_comment_field_to_bottom( $fields ) { $comment_field = $fields['comment']; unset( $fields['comment'] ); $fields['comment'] = $comment_field; return $fields; } add_filter( 'comment_form_fields', 'wp34731_move_comment_field_to_bottom' );
Wordpressのコメントフォームから項目(名前・メールアドレス・URL)入力欄を削除する方法
Wordpressのコメントフォームから名前・メールアドレス・URL入力欄を削除する方法は下記のとおりです。
function.phpに加筆してください。
※非表示にしたい場合はCSSでdisplay: none;
を使用するという手もありますが、脆弱性への対応などを考えると、そもそも入力項目を削除する形での対応がよいかと考えます。
/** * コメントから各種入力項目を削除 * * @param array $arg arg * @retuen array $arg arg */ function my_comment_form_remove($arg) { $arg['url'] = ''; //URL消去 $arg['email'] = ''; //メールアドレス消去 $arg['author'] = ''; //名前消去 return $arg; } add_filter('comment_form_default_fields', 'my_comment_form_remove');
参考リンク:affilabo.com「WordPressのコメント欄から不要な項目を削除する方法」
https://affilabo.com/wordpress/14221/
Wordpressのコメントフォームから不要な文言を削除する方法
Wordpressのコメントフォームから「メールアドレスが公開されることはありません。 * が付いている欄は必須項目です」という文言を削除する方法は下記のとおりです。
function.phpに加筆してください。
※非表示にしたい場合はCSSでdisplay: none;
を使用するという手もありますが、脆弱性への対応などを考えると、そもそも入力項目を削除する形での対応がよいかと考えます。
/** * 「メールアドレスが公開されることはありません。 * が付いている欄は必須項目です」の文言を削除 * * @param array $defaults array * @retuen array $defaults array */ function my_comment_notes_before( $defaults ){ $defaults['comment_notes_before'] = ''; return $defaults; } add_filter( "comment_form_defaults", "my_comment_notes_before");
参考リンク:affilabo.com「WordPressのコメント欄から不要な項目を削除する方法」
https://affilabo.com/wordpress/14221/
Wordpressのコメントフォームから「コメントを残す」を変更・削除する方法
Wordpressのコメントを採用している時、「コメントを残す」という文言が自動的に出力されます。
こちらの文言を変更・削除する方法は下記の通りです。
「コメントを残す」を変更する
文言を変更するには下記のようにfunction.phpを編集します。
/** * 「コメントを残す」を変更 * * @param array $defaults arg * @return array $defaults arg */ function my_title_reply( $defaults){ $defaults['title_reply'] = 'コメントはこちらから'; return $defaults; } add_filter( 'comment_form_defaults', 'my_title_reply');
「コメントを残す」を削除する
文言を削除するには下記のようにfunction.phpを編集します。
※非表示にしたい場合はCSSでdisplay: none;
を使用するという手もありますが、脆弱性への対応などを考えると、そもそも入力項目を削除する形での対応がよいかと考えます。
/** * 「コメントを残す」を削除 * * @param array $defaults arg * @return array $defaults arg */ function my_title_reply( $defaults ) { $defaults['title_reply'] = ''; return $defaults; } add_filter( 'comment_form_defaults', 'my_title_reply');
参考リンク:Think deeply, Do less, More effective「"コメントを残す" 削除・文言を変更する方法」
http://kwski.net/wordpress/804/
Wordpressでコメント投稿後にリダイレクトする方法
Wordpressでコメント投稿後に指定ページにリダイレクトする方法は下記のとおりです。
function.phpに追記して使用します。
/** * コメント投稿後に */ function redirect_after_comment () { $url = get_home_url().'/comment/complated'; // 指定URLへ遷移 wp_redirect($url); } add_filter('comment_post_redirect', 'redirect_after_comment');
まとめ
様々チャレンジしてみましたが、Wordpressのコメントフォームは、あまり自由にカスタマイズできない印象です。
テーマファイルに記載して自由にフォームアイテムを配置したりはできないようなので、function.phpで諸々変更する必要があります。