php-WordPress:按用户计数所有评论,然后计算评论中的元数据

我已经使用此功能针对用户的某些注释设置了一些自定义元:add_comment_meta($wp_comment_id,’accepted’,true);

我想做的是在其个人资料/ author / username上显示每个用户的特殊评论数,​​例如,如果一个用户发表了20条评论,而5条评论的元数据为true,则该值为5,

我该怎么办?谢谢.

解决方法:

我假设这是wordpress的最新版本.您可以在这里查看数据库架构图:http://codex.wordpress.org/images/9/9e/WP3.0-ERD.png

我还没有测试过,但是应该可以做到这一点:

<?php
getCommentCount('John', 'accepted', 'true');

function getCommentCount($author_name, $meta_key, $meta_value){
    if(empty($author_name)){
        return;
    }

    $author_name    = trim($author_name);
    $sql            = 'SELECT count(*) FROM ' . $wpdb->comments . ' comments '
                    . ' INNER JOIN ' . $wpdb->commentmeta . ' meta ON comments.comment_ID = meta.comment_id '
                    . ' WHERE comments.comment_author = %s AND meta.meta_key = %s ANd meta.value = %s ';

    $commentCount   = $wpdb->get_var($wpdb->prepare($sql, $author_name, $meta_key, $meta_value));

    return $commentCount;
}
上一篇:day vue框架


下一篇:python学习笔记 带参请求数据