概要
comment_form
フィルタは、WordPressのコメント投稿フォームを表示する際に使われる重要なフィルタです。このフィルタを利用することで、コメントフォームのデフォルトの設定を変更したり、追加の要素を挿入したりすることが可能になります。主に以下のような機能実装に使われることが一般的です:
- コメントフォームのタイトルを変更する
- フォーム内に説明文を追加する
- 特定の条件に応じてフィールドを表示/非表示にする
- 必要な検証ルールを追加する
- スタイルやレイアウトをカスタマイズする
- ソーシャルメディアリンクを挿入する
- プライバシーや同意に関するチェックボックスを追加する
- 他のプラグインとの連携のためにフォームを拡張する
構文
apply_filters( 'comment_form', $form, $args );
パラメータ
$form
: 現在のコメントフォームのHTML。$args
:comment_form
に渡される引数の配列。
戻り値
フィルタリングされたコメントフォームのHTML。
関連する関数
使用可能なバージョン
このフィルタはWordPress 2.0以降で使用可能です。
コアファイルのパス
wp-includes/comment-template.php
サンプルコード
サンプルコード1: フォームタイトルの変更
add_filter( 'comment_form_title', function( $title ) {
return '新しいコメントタイトル';
});
このコードは、コメント投稿フォームのタイトルを「新しいコメントタイトル」に変更します。
サンプルコード2: コメントフォームの説明文を追加
add_filter( 'comment_form_defaults', function( $defaults ) {
$defaults['comment_notes_after'] = 'あなたの意見をお聞かせください。';
return $defaults;
});
このコードは、コメントフォームの後に説明文を追加します。
サンプルコード3: 特定条件でフィールドを非表示にする
add_filter( 'comment_form_field_comment', function( $field ) {
if ( is_user_logged_in() ) {
return '';
}
return $field;
});
このコードは、ログインユーザーにはコメントフィールドを表示しないようにします。
サンプルコード4: プライバシー同意チェックボックスを追加
add_filter( 'comment_form_fields', function( $fields ) {
$fields['privacy'] = '<p class="comment-form-privacy">
<input type="checkbox" required /> プライバシーポリシーに同意します
</p>';
return $fields;
});
このコードは、コメントフォームにプライバシー同意のチェックボックスを追加します。
サンプルコード5: コメント送信後のメッセージをカスタマイズ
add_filter( 'comment_post_redirect', function( $location ) {
return add_query_arg( 'message', 'comment_submitted', $location );
});
このコードは、コメントが送信された後にリダイレクト先のURLにメッセージを追加します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | 〇 |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | 〇 |
template_redirect | |
get_header | |
wp_head | 〇 |
非推奨または削除されたバージョン
特に非推奨又は削除されたバージョンはありません。