Wordpress评论自定义帖子类型

时间:2016-02-29 10:46:37

标签: php wordpress

我已按照here上的教程将评论转化为评论,这对我有用。我需要将评论仅限于我的自定义帖子类型,而不是回复。在那一刻,如果我点击回复,它也会认为这也是一个评论。

如果是自定义帖子而不是回复,我可以挂钩测试什么?

1 个答案:

答案 0 :(得分:1)

正如您在普通评论表格中所见,它包含在

<div id="respond" class="comment-respond"><COMMENT FORM HERE></div>

当回复评论时,它被包装

<ol class="children"><div id="respond" class="comment-respond"><COMMENT FORM HERE></div></ol>
  

这些包装div和HTML来自Twentyfifteen主题   在进入下面之前检查一下

因此,<ol class="children"> .children可用于隐藏“回复评论”表单中的所需字段。我们可以制作display:none;

例如:如果我需要将电话字段设为不显示且不需要,

第1步:不显示此内容通过CSS,将ID传递给此输入<input type="text" name="phone" value="<?php echo esc_attr( $phone ); ?>" class="widefat" id="user_phone"/>

在CSS文件中添加:

ol.children form#user_phone{display:none;}

这只会隐藏电话字段以回复评论表单,而不是正常评论。

第2步:好的现在我们已经隐藏了这个字段,但它是必填字段,所以在PHP脚本中不需要这个。在“回复评论”表单中,在提交表单时也会发布父评论ID的值(在“正常评论”中为0,因为它应该是父评论:))

<?php 
if($_POST['comment_parent'] != '0' || $_POST['comment_parent'] != 0 )){
    if ( ( isset( $_POST['phone'] ) ) && ( $_POST['phone'] != '') ) :
      $phone = wp_filter_nohtml_kses($_POST['phone']);
      update_comment_meta( $comment_id, 'phone', $phone );
      else :
      delete_comment_meta( $comment_id, 'phone');
      endif;
}
?>

这会使手机字段隐藏,也不会检查其是非空的要求。