GET_COMMENTS(),其中父项不是0

时间:2013-01-06 作者:Chris

我需要一种方法来获取非顶级的评论,即父级不是0。

我尝试过:

$args = array(
   \'parent\' => -0
);
$comments = get_comments($args);
我知道我需要的所有注释的父注释id(44和48),因此我尝试:

$args = array(
   \'parent\' => array(44,48)
);

$comments = get_comments($args);
但这不起作用。它只返回了一行。如果可能的话,我需要坚持使用get\\u comments(),因为我已经在这方面做了很多工作,所以我想避免失去我所做的。

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

不能使用的参数执行此操作get_comments(), 但是过滤\'comments_clauses\' 应该这样做。

未测试的示例代码:

add_filter( \'comments_clauses\', \'wpse_78490_child_comments_only\' );

function wpse_78490_child_comments_only( $clauses )
{
    $clauses[\'where\'] .= \' AND comment_parent != 0\';
    return $clauses;
}

SO网友:Maciek Rek

获取特定注释家长的注释。。。

(如果你不是被迫这样做的get_comments())

您可以将注释数组传递给wp_list_comments() 作为第二个参数。不过,它只适用于“平坦”输出。

  $comments_parent_ids= [40, 48];
  $comments= [];

  foreach ($comments_parent_ids as $id) {

     $comments= array_merge(
           $comments,
           get_comment($id)->get_children([\'hierarchical\'=>\'flat\'])
        );
  }

  wp_list_comments(
     [],
     $comments
  );

结束

相关推荐

Ajax comments not working

我遵循了“ajaxify”wordpress评论的教程,其中不会重新加载页面:jQuery(\'document\').ready(function ($) { $(\'#commentform\').each(function () { var commentform = $(this); // find the comment form commentform.prepend(\'<div id=\"comment-status\"