在Wordpress中枚举帖子将无法工作两次

时间:2014-11-29 00:22:18

标签: php wordpress wp-query side-effects

此方法由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(),但该函数已经执行了此操作。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我刚删除了wp_reset_query()并且有效。 (即使Wordpress告诉你打电话给它!?)