描述
大多数字符串和表单字段可以通过传递到函数中的$args
数组进行控制,如果您只想添加新字段或删除单个字段,则也可以选择使用‘comment_form_default_fields’过滤器修改默认字段数组。所有字段也分别通过‘comment_form_field_$name’过滤器钩子,其中$name
是字段数组中使用的键。
参数
- $args
-
(array) (可选) 要重写的默认参数和表单字段。
- 'fields'
(array) 默认的评论字段,可通过 ‘comment_form_default_fields’ 钩子过滤- 'author'
(string) 评论作者字段 HTML - 'email'
(string) 评论作者 email 字段 HTML - 'url'
(string) 评论作者 URL 字段 HTML - 'cookies'
(string) 评论 cookie 选择字段 HTML
- 'author'
- 'comment_field'
(string) 评论 textarea 字段 HTML - 'must_log_in'
(string) 用于"必须登录才能评论"信息的HTML元素 - 'logged_in_as'
(string) 用于"以[用户]身份登录"信息的HTML元素 - 'comment_notes_before'
(string) 如果用户没有登录,在评论区前显示的信息的HTML元素。默认为:"您的电子邮件地址将不会被公布" - 'comment_notes_after'
(string) 用于在textarea字段后显示消息的HTML元素 - 'action'
(string) 评论表单的action属性,默认为'/wp-comments-post.php' - 'id_form'
(string) 评论表单的id属性,默认为'commentform' - 'id_submit'
(string) 评论提交元素的id属性,默认为'submit' - 'class_container'
(string) 评论表单的容器class属性,默认为'comment-respond' - 'class_form'
(string) 评论表单元素的class属性,默认为'comment-form' - 'class_submit'
(string) 评论提交元素的class属性,默认为'submit' - 'name_submit'
(string) 评论提交元素的name属性,默认为'submit' - 'title_reply'
(string) 可翻译的"回复"按钮label,默认为"留下回复" - 'title_reply_to'
(string) 可翻译的"回复到"按钮标签,默认为 "给%s留下回复",其中%s是被回复的评论作者。 - 'title_reply_before'
(string) 显示在评论表单标题前的HTML,默认:<h3 id="reply-title" class="comment-reply-title">
- 'title_reply_after'
(string) 显示在评论表单标题之后的HTML,默认:</h3>
- 'cancel_reply_before'
(string) 在取消回复链接前显示的HTML - 'cancel_reply_after'
(string) 在取消回复链接后显示的HTML - 'cancel_reply_link'
(string) 可翻译的"取消回复"按钮label,默认为'取消回复' - 'label_submit'
(string) 可翻译的"提交"按钮label,默认为'发表评论' - 'submit_button'
(string) 提交按钮的HTML格式,默认:<input name="%1$s" type="submit" id="%2$s" class="%3$s" value="%4$s" />
- 'submit_field'
(string) 包围提交按钮和评论隐藏字段的标记的HTML格式,默认:<p class="form-submit">%1$s %2$s</p>
,其中%1$s是提交按钮标记,%2$s是评论隐藏字段 - 'format'
(string) 评论表单的格式,默认为'xhtml',接受'xhtml'、'html5'
默认值: array()
- 'fields'
- $post_id
-
(int|WP_Post) (可选) 要生成表单的文章 ID或WP_Post对象,默认当前文章。
默认值: null
源码
更新日志
版本 | 描述 |
---|---|
5.5.0 | 引入了“class_containerr”参数 |
4.9.6 | 引入了“cookies”默认评论字段 |
4.6.0 | 引入了“action”参数 |
4.5.0 | “author”、“email”和“url”表单字段分别限制为245、100和200个字符 |
4.4.0 | 引入了'class_form'、'title_reply_before'、'title_reply_after'、'cancel_reply_before' 和 'cancel_reply_after'参数 |
4.2.0 | 引入了'submit_button' 和 'submit_fields' 参数 |
4.1.0 | 引入了“class_submit”参数 |
3.0.0 | 开始引入 |
使用示例
如何更改一些评论表单字段的简单示例:
$comments_args = array( // Change the title of send button 'label_submit' => __( 'Send', 'textdomain' ), // Change the title of the reply section 'title_reply' => __( 'Write a Reply or Comment', 'textdomain' ), // Remove "Text or HTML to be displayed after the set of comment fields". 'comment_notes_after' => '', // Redefine your own textarea (the comment body). 'comment_field' => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label><br /><textarea id="comment" name="comment" aria-required="true"></textarea></p>', ); comment_form( $comments_args );
评论字段的顺序>Functions.php
//Comment Field Order add_filter( 'comment_form_fields', 'mo_comment_fields_custom_order' ); function mo_comment_fields_custom_order( $fields ) { $comment_field = $fields['comment']; $author_field = $fields['author']; $email_field = $fields['email']; $url_field = $fields['url']; $cookies_field = $fields['cookies']; unset( $fields['comment'] ); unset( $fields['author'] ); unset( $fields['email'] ); unset( $fields['url'] ); unset( $fields['cookies'] ); // the order of fields is the order below, change it as needed: $fields['author'] = $author_field; $fields['email'] = $email_field; $fields['url'] = $url_field; $fields['comment'] = $comment_field; $fields['cookies'] = $cookies_field; // done ordering, now return the fields: return $fields; }
翻译友好选项的扩展列表->comments.php
//Declare Vars $comment_send = 'Send'; $comment_reply = 'Leave a Message'; $comment_reply_to = 'Reply'; $comment_author = 'Name'; $comment_email = 'E-Mail'; $comment_body = 'Comment'; $comment_url = 'Website'; $comment_cookies_1 = ' By commenting you accept the'; $comment_cookies_2 = ' Privacy Policy'; $comment_before = 'Registration isn\'t required.'; $comment_cancel = 'Cancel Reply'; //Array $comments_args = array( //Define Fields 'fields' => array( //Author field 'author' => '<p class="comment-form-author"><br /><input id="author" name="author" aria-required="true" placeholder="' . $comment_author .'"></input></p>', //Email Field 'email' => '<p class="comment-form-email"><br /><input id="email" name="email" placeholder="' . $comment_email .'"></input></p>', //URL Field 'url' => '<p class="comment-form-url"><br /><input id="url" name="url" placeholder="' . $comment_url .'"></input></p>', //Cookies 'cookies' => '<input type="checkbox" required>' . $comment_cookies_1 . '<a href="' . get_privacy_policy_url() . '">' . $comment_cookies_2 . '</a>', ), // Change the title of send button 'label_submit' => __( $comment_send ), // Change the title of the reply section 'title_reply' => __( $comment_reply ), // Change the title of the reply section 'title_reply_to' => __( $comment_reply_to ), //Cancel Reply Text 'cancel_reply_link' => __( $comment_cancel ), // Redefine your own textarea (the comment body). 'comment_field' => '<p class="comment-form-comment"><br /><textarea id="comment" name="comment" aria-required="true" placeholder="' . $comment_body .'"></textarea></p>', //Message Before Comment 'comment_notes_before' => __( $comment_before), // Remove "Text or HTML to be displayed after the set of comment fields". 'comment_notes_after' => '', //Submit Button ID 'id_submit' => __( 'comment-submit' ), ); comment_form( $comments_args );