3

この関数を使用して、ユーザーの特定のコメントに対していくつかのカスタム メタを設定しました。add_comment_meta( $wp_comment_id, 'accepted', true );

私がやりたいことは、プロファイル /author/username の各ユーザーについて、これらの特別なコメントの数を表示することです。たとえば、ユーザーが 20 のコメントを作成し、5 つのメタデータが受け入れられた場合、値は次のようになります。 5.

どうすればこれを行うことができますか? ありがとう。

4

2 に答える 2

3

これがワードプレスの最新バージョンだと思います。ここでデータベースのスキーマ図を見ることができます: 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;
}
于 2011-02-20T05:24:28.733 に答える
1

「メタデータをカウントする」の意味がわかりません...
メタデータの値は..ユーザーのメタデータまたはコメントを意味しますか.

とにかく-特定のユーザーによるコメントをカウントするには...
このコードを関数phpに入れます

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

ユーザーIDを取得した場所ならどこでも使用できます

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

.

これが誰かに役立つことを願っています;)乾杯、サギブ

于 2012-07-07T22:52:55.930 に答える