您可以运行WP_Query
从post\\u type获取所有帖子casinos
并使用自定义字段值对其进行排序casino_rank_score
. 然后可以进一步处理它以显示列组。
$args = array(
\'post_type\' => \'casinos\',
\'meta_key\' => \'casino_rank_score\',
\'orderby\' => \'meta_value_num\',
\'posts_per_page\' => 350,
\'ignore_sticky_posts\' => 1,
);
$my_query = new WP_Query( $args );
如果只需要显示一篇文章
RANKED #2 of 350 CASINOS
然后您可以使用
\'posts_per_page\' => 1,
并偏移1
\'offset\' => 1,
这一天你将得到排名第二的赌场。
EDIT
要获得排名,您需要运行自定义查询。这就是如何在自定义查询中获取当前帖子的排名。它经过优化,因为我们只返回ID,不需要post数据,所以速度非常快。但为了进一步优化它,您可以使用
Transients_API 几小时或几天。
$args = array(
\'post_type\' => \'casinos\',
\'meta_key\' => \'casino_rank_score\',
\'orderby\' => \'meta_value_num\',
\'posts_per_page\' => -1,
\'ignore_sticky_posts\' => 1,
\'fields\' => \'ids\',
);
$my_query = new WP_Query( $args );
global $post;
$total_casinos = $my_query->post_count;
$casinos_rank = array_search( $post->ID, $my_query->posts ) + 1;
echo "RANKED #" . $casinos_rank . " of " . $total_casinos . " CASINOS";
这是
tested
和
working