有没有办法在循环之外定义$POST变量?

时间:2010-09-29 作者:Mild Fuzz

我正试图通过将三个wp\\U查询压缩为一个来加速wordpress站点。我需要划分类别,因此我正在打电话并定义3个数组以使用开关来担任职务,如下所示:

 $new_query = new WP_Query();
                $new_query->query(\'post_type=post&paged=\'.$paged);
                if ( $new_query->have_posts() ) : while ( $new_query->have_posts() ) : $new_query->the_post();              
                $category = choose_one_category(get_the_category());

                switch ($category){
                    case "Category 1":
                        $cat1[] = $post;
                        break;
                    case "Category 2":
                        $cat2[] = $post;
                        break;
                    case "Category 3":
                        $cat3[] = $post;
                        break;
                }


                endwhile; endif;
这给我留下了3个数组,这些数组对帖子进行了很好的排序。现在,我希望在循环外定义变量$post,以便可以使用如下方法the_date() &;comments_number() 不必重写这些函数,有人能帮忙吗?

我尝试过:

                    foreach ($centre as $new_post){
                        $post = $new_post;

                                             include(\'front_page_loop.php\');
                    } 
在哪里front_page_loop.php 是我的循环代码,但我只是收到了相同的帖子,尽管日期不同

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

我想setup_postdata($post) (内部)函数执行此操作。我没有在Codex(典型)中找到合适的文档,但这里和那里都有类似的例子Displaying Posts Using a Custom Select Query.

此测试片段似乎工作正常,例如您有疑问的代码:

foreach ( $cat1 as $post ) {

    setup_postdata($post);
    printf( \'Post "%s" was posted %s ago<br />\',
        get_the_title(),
        human_time_diff( strtotime( get_the_date() ) )
        );
}

结束

相关推荐

是否在URI请求参数表单中使用联合/交集查询_POSTS变量?

通常,在创建某种形式的查询时,我会对参数使用一个数组,如下所示: $postslistArgs = array( \'child_of\' => 320, \'parent\' => 320 ); $postslist = get_pages($postslistArgs);但是,在其他情况下,我还需要/想要使用URI样式的查询参数,如下所示:get_pages(\'child_of=