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

发布于 2024-10-17 02:46:50 字数 228 浏览 3 评论 0原文

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

我想要做的是在每个用户的个人资料 /author/ 上显示username 是他们拥有多少个特殊评论,例如,如果用户发表了 20 条评论,并且 5 条评论的接受元数据等于 true,则该值将为 5。

我该怎么做?谢谢。

I have set some custom meta against certain comments for users using this function: add_comment_meta( $wp_comment_id, 'accepted', true );

What I want to do is show for each user on their profile /author/username is how many of these special comments they have so for example if a user made 20 comments and 5 had this meta data of accepted equalling true then the value would be 5.

How could I do this? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

大海や 2024-10-24 02:46:50

我假设这是 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;
}

I'm assuming this is the latest version of wordpress. You can see the database schema diagram here: http://codex.wordpress.org/images/9/9e/WP3.0-ERD.png

I haven't tested this, but something LIKE this should do the trick:

<?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;
}
ぃ双果 2024-10-24 02:46:50

我不明白“计算元数据”是什么意思...
元数据中的值是多少..您是指用户的元数据还是评论。

无论如何 - 为了计算特定用户的评论,您可以...
将此代码放入您的 php 函数中

function countUserComments($userID) {
    $args = array(
        'user_id' => $userID
    );
    $comments = get_comments( $args );
    echo count($comments);
}

,您可以在任何有可用用户 ID 的地方使用它,如下所示

<?php echo countUserComments($user->ID); ?>

希望这对任何人都有帮助;)
干杯,萨吉夫

i dont understand what do you mean by "count meta data"...
whice value in meta data.. do you mean the user's meta data or the comment.

Anyhow - in order to count comments by a specific user you can...
Put this code in your functions php

function countUserComments($userID) {
    $args = array(
        'user_id' => $userID
    );
    $comments = get_comments( $args );
    echo count($comments);
}

The you can use it anywhere where you got a user id available to you like so

<?php echo countUserComments($user->ID); ?>

.

Hope this helps anyone ;)
Cheers, Sagive

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文