我已针对使用此功能的用户的某些评论设置了一些自定义元:add_comment_meta( $wp_comment_id, 'accepted', true );
我想要做的是为每个用户显示他们的个人资料/作者/用户名是他们有多少这些特殊评论,例如,如果用户发表了20条评论,5则将此元数据接受等于真,那么价值将是5.
我怎么能这样做?感谢。
答案 0 :(得分:3)
我假设这是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;
}
答案 1 :(得分:1)
我不明白“计算元数据”是什么意思...
元数据中的whice值。是指用户的元数据或注释。
无论如何 - 为了计算特定用户的评论,你可以...
将此代码放在您的函数php
function countUserComments($userID) {
$args = array(
'user_id' => $userID
);
$comments = get_comments( $args );
echo count($comments);
}
您可以在任何有权使用用户ID的地方使用它
<?php echo countUserComments($user->ID); ?>
。
希望这有助于任何人;) 干杯,Sagive