当我需要多个comment_template时,我有一个页面,所以我希望我的每个comment_template都有不同的类型,所以我在那些2中看到了不同的注释。
我的get_comments看起来像这样
$args = array(
'post_id' => get_the_ID(),
'orderby' => 'comment_date',
'order' => 'ASC',
'type' => 'tips'
);
$comments = get_comments($args);
问题是当我发表评论时,我没有找到如何将此帖子类型分配给评论,所以我无法用get_comments()
显示它们我试图像这样添加我的评论表单,但仍然无法正常工作
$comment_args = array(
'type' => 'tips'
);
comment_form($comment_args);
答案 0 :(得分:0)
保存自定义评论类型有几个步骤,顺便说一句,WordPress在技术上不像自定义帖子类型那样支持它。
A。 WordPress有3种注释类型:ping,引用和常规注释为空白。
B。使用WP的前提,允许空白字段关联“普通评论”,我们现在可以使用所需的任何名称插入新的CCT。
C。您必须在函数中使用comment_form_defaults
来在注释表单之外定义一个数组并将其作为参数传递。 (否则,您可以直接在标注上更改comment_form($args)
中的$参数。)
add_filter('comment_form_defaults', 'wpse33967503_defaults_comments_positive');
function wpse33967503_defaults_comments_positive($default)
{
global $comment_id;
$actnonce = 'action_tips';
$action = empty( $_REQUEST['action_tips'] )
? false : $_REQUEST['action_tips'];
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $action != false )
{
if( isset( $_POST['custom_tips'] ) ){
$ctype = $_POST['custom_tips'];
$default['fields']['comment_type'] = '<p class="comment-form-tips '. $ctype .'">
<input type="hidden" name="action_tips" value="'. $actnonce .'"
id="action_tips" />
<input type="hidden" name="comment_type" value="'. $ctype .'"
id="comment_type" /></p>';
}
}
return $default;
}
D。现在,我们可以将此输入注入评论表单,但是验证始终是一件好事。
add_filter( 'preprocess_comment', 'wpse33967503_preprocess_comment_handler', 12, 1 );
function wpse33967503_preprocess_comment_handler( $commentdata )
{
if( ( isset( $_POST['comment_type'] ) ) && ( $_POST['comment_type'] != '') ) {
$commentdata['comment_type'] = wp_filter_nohtml_kses( $_POST['comment_type'] );
}
return $commentdata;
}
可以随意添加消息,甚至可以进行管理员验证...我只是检查它是否已发布。
您的CCT现在是注释数据的一部分(不是comment_meta)。这是WP继承的常规注释数据参数。
这是wp_comments表中的默认注释数据集。从技术上讲,您可以自定义其中的任何一种。
comment_ID: ID for the comment
comment_post_ID: The post for which the comment is posted
comment_author: Comment author name
comment_author_email: Author name for the comment
comment_author_url: Author url
comment_author_IP: Author IP address
comment_date: Comment Date
comment_date_gmt: GMT time of the comment
comment_content: Contents of the comment (comment body)
comment_karma: Is there default karma calculation? Maybe rating?
comment_approved: Flag for the comment status.
comment_agent:
comment_type: functionality can be used like custom post type
comment_parent: For threaded comment
user_id: user id if comment author is a registered user of the site.