列出特定作者的每个帖子收到的评论

时间:2016-04-13 作者:Cwkin7

wordpress内置get_comments() 可以根据帖子类型、帖子元、帖子id或评论作者id轻松列出评论。但我想把它们放在一起,列出最近的received 来自特定作者帖子的评论。

我目前的方式只能简单地列出所有评论:

    <?php
            $store_ID = $store_user->ID;
            $args = array(
                \'status\' => \'approve\',
                \'order\' => \'DESC\',
                \'orderby\' => \'comment_date_gmt\',
                \'meta_query\' => array(
                            array(
                                \'key\' => \'rating\',
                                \'value\'   => array(\'\'),
                                \'compare\' => \'NOT IN\'
                            ) 
                )
            );
            $comments = get_comments($args);
            if ( count( $comments ) == 0 ) {
                        echo \'<span colspan="5">None message here</span>\';
            } else {foreach ( $comments as $single_comment ) {
                        echo \'loop content\';
            }
    ?>
因此,我正在寻找指定sepcific author的帖子中的循环停留的部分。可能需要一些sql技能?

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

不,您可以通过嵌套查询来实现这一点。

要获取用户对帖子的所有评论,您应该考虑先获取该用户的所有帖子,然后获取该帖子的评论。

<?php
    $args = array(
        \'author\' => AUTHOR_ID,
        \'posts_per_page\' => 500, //Don\'t use -1 here
    );
    $the_query = new WP_Query( $args );
    if($the_query->have_posts() ) : ?>
        <?php while ( $the_query->have_posts() ) : ?>
            <?php
            $nested_args = array(
                \'post_id\' => get_the_ID()
            );
            $comments_query = new WP_Comment_Query;
            $comments = $comments_query->query( $nested_args );
            if ( $comments ) {
                foreach ( $comments as $comment ) {
                    echo \'<p>\' . $comment->comment_content . \'</p>\';
                }
            }
        <?php endwhile; ?>
    <?php endif; ?>
<?php wp_reset_query(); ?>

SO网友:1Bladesforhire

您可以向查询中添加其他参数,以便仅按id或名称获取特定作者的参数

 $args = array(
            \'status\' => \'approve\',
            \'order\' => \'DESC\',
            \'orderby\' => \'comment_date_gmt\',
            \'author\' => 12,
            \'meta_query\' => array(
                        array(
                            \'key\' => \'rating\',
                            \'value\'   => array(\'\'),
                            \'compare\' => \'NOT IN\'
                        ) 
            )
        );
资料来源:WP query

显示一位作者的帖子

使用作者id按作者显示帖子:

$query=新的WP\\u查询(数组(\'author\'=>123));按作者显示帖子,使用作者“user\\u nicename”:

$query=新的WP\\u查询(数组(\'author\\u name\'=>\'rami\');