按元_值显示用户帖子中所有评论的计数

时间:2013-01-14 作者:Pollux Khafra

我正在尝试显示限制为评论元的用户帖子的评论总数。我试过两者都用get_comments()WP_Comment_Query() 但我得到的评论计数结果是“1”,而它应该是“3”。现在在这个例子中,我可以删除\'Count\' => true 只需循环浏览注释,这将在循环中返回正确数量的注释,但计数仍然等于1。

他们提供了一个例子here 关于如何获得计数,但这对我不起作用。这是我的函数。

 function get_unseen_comment_count() {
    if ( !is_user_logged_in() )
        return false;
    $user_id = get_current_user_id();
    $postids = array();
    $posts = get_posts( array(
      \'numberposts\' => -1,
      \'post_type\'       => \'fod_articles\',
      \'author\' => $user_id,
      \'post_status\'     => \'publish\'
    ));

    foreach( $posts as $post ) {
        $postids[] = $post->ID;
    }
    $args = array(
        \'include\'      => $postids,
        \'meta_query\' => array(
          array(
            \'key\'   => \'viewed_status\',
            \'value\' => \'unseen\'
          )
        ),      
        \'count\' => true
    );
    // $comments_query = new WP_Comment_Query;
    // $comments = $comments_query->query( $args );
    $comments = get_comments($args);
    echo \'<span class="comment-count">\';
      echo $comments;
    echo \'</span>\';
 }
现在在法典中没有这样说get_comment() 支持元查询,但您可以在第181行看到here 确实如此。然而,它并不表示支持include 但当我使用实际注释循环进行测试时,它肯定会起作用。

一些进一步的测试当我删除meta\\u查询时,我确实得到了用户所有帖子的总评论数,因此我的媒体查询似乎是干扰计数的问题。我也试着用meta_keymeta_value 没有元查询,但我得到了相同的结果。。。“1”。

3 个回复
SO网友:Steve

查看您传递给get\\u comments()的参数,并将它们与WordPress Codex.

您的示例-

$args = array(
    \'include\'      => $postids,
    \'meta_query\' => array(
      array(
        \'key\'   => \'viewed_status\',
        \'value\' => \'unseen\'
      )
    ),      
    \'count\' => true
);
codex示例-

$defaults = array(
    \'author_email\' => \'\',
    \'ID\' => \'\',
    \'karma\' => \'\',
    \'number\' => \'\',
    \'offset\' => \'\',
    \'orderby\' => \'\',
    \'order\' => \'DESC\',
    \'parent\' => \'\',
    \'post_id\' => \'\',
    \'post_author\' => \'\',
    \'post_name\' => \'\',
    \'post_parent\' => \'\',
    \'post_status\' => \'\',
    \'post_type\' => \'\',
    \'status\' => \'\',
    \'type\' => \'\',
    \'user_id\' => \'\',
    \'search\' => \'\',
    \'count\' => false
);
当文档清楚地指示一个一维数组时,您正在传递一个多维数组

SO网友:Pollux Khafra

我的解决方案就是count() 确定返回的数组中的项数$comments 这很有意思,但我将不检查它,因为这并不能解释为什么函数方法不起作用。

SO网友:darrinb

我刚刚在我的网站上测试了你的代码(我手动在3条评论中添加了评论元值),效果很好。

我做的唯一一件事就是发表评论\'post_type\' => \'fod_articles\', 因为我没有那种帖子类型。应该是吗fod_articlesfood_articles?

编辑:

我再次进行了测试,这一次使用了一个自定义的post类型,在做了以下更改后,它就工作了:

$args = array(
    \'post__in\'      => $postids,
    \'meta_query\' => array(
      array(
        \'key\'   => \'viewed_status\',
        \'value\' => \'unseen\'
      )
    ),      
    \'count\' => true
);
基本改变includepost__in

结束

相关推荐

如何正确使用Comments-template.php

我想修改已登录用户和未登录用户的评论表单。我通过更改注释修改了未登录用户的表单。php,但我不太确定如何为登录用户修改我的表单。我知道我必须使用comments\\u template(),但每当我尝试在页面中使用它时。php,我遇到这样的错误Notice: Undefined variable: args in {PATH}/twwr-theme/comments-template.php on line 13 这些是我评论的内容。php,有点乱<?php if (!empty