首先,您必须在使用全局$wpdb之前声明它。在调用表名时,还需要包含表前缀。
global $wpdb;
$posts_table = $wpdb->prefix . "posts";
$posts_meta_table = $wpdb->prefix . "postmeta";
接下来,根据所需的作者获取帖子id数组(确保您拥有所需作者的id,分配给$author\\u id)。
$authors_posts = $wpdb->get_col($wpdb->prepare("SELECT * FROM ".$posts_table." WHERE post_author = %d", $author_id) );
为SQL生成以逗号分隔的post id数组版本
$comma_delimited = implode(\',\', array_map(\'intval\', $author_posts));
接下来,使用id数组从post元表中获得“epicredvote”的和。注意#投票数存储在meta\\u值列中
$allscore = $wpdb->get_var( $wpdb->prepare(
"SELECT SUM(meta_value)
FROM " .$posts_meta_table . "
WHERE (meta_key = \'epicredvote\'
AND post_id IN %s)"
, $comma_delimited));