怎么可能得到所有孩子的热门评论呢?

时间:2020-09-24 作者:Dazza

我可以检查父注释是否是最上面的注释:

$comment_obj = get_comment( $comment_ID );
$parent_ID = $comment_obj->comment_parent;
但是,无论我是在发布孩子还是孙子等,我都希望能够获得顶级评论。我根本找不到检索家长/顶级评论的太多信息?

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

你可以适应get_post_acestors(), 并为注释编写类似的函数。下面是一个返回顶部注释的id或false. 未测试

function get_root_comment( $comment_id ) {
    
    $comment = get_comment( $comment_id );  
 
    if ( ! $comment 
        || empty( $comment->comment_parent ) 
        || $comment->comment_parent == $comment_id 
    ) {
        return false;
    }
 
    $ancestors   = [];   
    $id          = $comment->comment_parent;
    $ancestors[] = $id;
 
    while ( $ancestor = get_comment( $id ) ) {
        
        if ( empty ( $ancestor->comment_parent ) ) {
            return $id;
        }
        
        // self-reference
        if ( $ancestor->comment_parent == $id ) {
            return $id;
        }
        
        // loop
        if ( in_array( $ancestor->comment_parent, $ancestors, true ) ) {
            return $id;
        }
 
        $id          = $ancestor->comment_parent;
        $ancestors[] = $id;
    }
}
在其他代码中使用WP_Comment 对象:

$root_comment = get_root_comment( $comment_obj->comment_ID );

if ( $root_comment ) {
    // do something with the ID
}

相关推荐

由于嵌套的wp_Query,wp_Query速度较慢。需要建议

我面临着查询速度慢的问题。由于我对WP\\u查询不太熟悉,我设法用嵌套的WP\\u查询解决了我的问题。https://it.zoetalentsolutions.com/technology-provider/aws/在上面的分类页面URL中,您将看到课程以及每个课程都有多个时间表。所以我有两种帖子类型1。课程和;2.Course\\u时间表,每个课程都有唯一的Course\\u代码(存储在自定义字段中)。我在上面的页面中所做的是:我使用wp\\u query获取帖子,并针对每个帖子: /