统计帖子的trackback、pingback和评论

时间:2014-09-16 作者:aifrim

我希望显示trackbacks, pingbackscomments 一个帖子有。我已经阅读了所有关于它们的内容,我想知道是否有一个我没有看到的简单解决方案可用。

我知道wp_count_comments (trac line 1188) 在进行数据库查询之前在WPs缓存中进行搜索,我想知道pingbackstrackbacks.

现在我在用这个modified code 显示注释、trackback、pingbacks和ping的数量(trackbacks+pingbacks)

function commentCount( $type = \'pings\' ) {
    global $wpdb;

    if ( $type == \'pings\' ) {
        $typeSql = \'comment_type != ""\';
    } elseif ( $type == \'trackbacks\' ) {
        $typeSql = \'comment_type = "trackback"\';
    } elseif ( $type == \'pingbacks\' ) {
        $typeSql = \'comment_type = "pingback"\';
    }

    $result = $wpdb->get_var( \'
        SELECT
            COUNT(comment_ID)
        FROM
            \' . $wpdb->comments . \'
        WHERE
            \' . $typeSql . \' AND
            comment_approved="1" AND
            comment_post_ID= \' . get_the_ID()
    );

    return $result;
}


$comments   = wp_count_comments( get_the_ID() );
$trackbacks = commentCount( \'trackbacks\' );
$pingbacks  = commentCount( \'trackbacks\' );
$pings      = commentCount( \'pings\' );

1 个回复
最合适的回答,由SO网友:Tomás Cot 整理而成

我想你可以用get_comments.

type 参数可以传递注释类型(trackback、ping),可以按状态筛选,并且有一个名为count, 当设置为true 仅返回与您传递的参数匹配的注释数。

 get_comments(
    array(
    \'status\' => \'approve\',
    \'post_id\'=> get_the_ID(), 
    \'type\'=> \'pings\', 
    \'count\' => true)
 );
此示例获取帖子的已批准ping数,您必须在循环中使用它,如果不是,则在函数中使用它get_the_ID() 行不通,但你只需按你的意愿传递ID即可。

结束

相关推荐

Batch approve comments

Akismet发疯了,向垃圾邮件发送了数百条评论。现在,我必须手动将每条评论标记为“非垃圾邮件”,然后手动将所有评论从待处理状态移至已批准状态。有没有更有效的方法?