我有一个允许用户“喜欢”帖子的 WordPress 网站。这会在包含用户 ID 的帖子中添加一个自定义字段,如下所示:
add_post_meta($post_id, 'like', $user_id, false);
因此,一个帖子最终可能会包含一个带有用户 ID 的 100 个不同的“like”键。
所以我想根据喜欢返回一个最活跃用户的排行榜。因此,我想查询出现最多的 $user_id 的 meta_key 'like'。它看起来像这样。显然,目前这行不通。
$args = array(
'post_type' => 'post',
'meta_key' => 'likes',
'post_status' => 'publish',
'posts_per_page' => 20,
'orderby' => 'popularity', // This doesn't exist yet, but I wants it!
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'likes',
'value' => $user_id,
'compare' => '=',
)
)
);
$query = new WP_Query($args);
这甚至可能吗?或者我会更好地定期获取所有帖子,添加喜欢并缓存结果吗?
我知道我可以创建一个自定义字段,该字段会随着喜欢它的人而增加,但我宁愿提出一个查询来实时获取结果(在删除用户等时更健壮)。
谢谢,德鲁