这个方法是由某人在Wordpress论坛上发布的,目的是从其ID中获取帖子"数字"(1,2,3,4等)(不是按顺序排序的)。我对其进行了一点修改,以仅查询幻灯片。
function Get_Post_Number($postID){
$temp_query = $wp_query;
$postNumberQuery = new WP_Query(array(
'ignore_sticky_posts' => 1,
'posts_per_page' => 20,
'post_type' => 'slide'));
$counter = 0;
$postCount = 0;
if($postNumberQuery->have_posts()) :
while ($postNumberQuery->have_posts()) : $postNumberQuery->the_post();
if ($postID == get_the_ID()){
$postCount = $counter;
} else {
$counter++;
}
endwhile; endif;
wp_reset_query();
$wp_query = $temp_query;
return $postCount;
}
调用一次时它工作正常,并将返回正确的号码。
Get_Post_Number(get_the_ID()) //Returns 3 (for instance)
但是当调用两次时,它不再有效:
Get_Post_Number(get_the_ID()) //Returns 3 (for instance)
Get_Post_Number(get_the_ID()) //Returns 0 (wrong!)
这让我相信该功能有副作用,但我不确定如何撤消它们。WordPress说在你做自己的"自定义循环"后调用wp_reset_query()
,但该函数已经这样做了。
我该怎么办?
我刚刚删除了wp_reset_query()
,它起作用了。(即使Wordpress告诉你打电话!?)