无法重置插件模板中的循环

时间:2015-03-01 作者:MEDZ

我试图覆盖其他插件中存在的循环中的查询。我创建了一个扩展,使用插件中存在的挂钩覆盖该循环。

插件查询:

query_posts ($args);
/*
Some codes
*/
do_action(\'the_action_Triggered\');
/*
the loop
*/
在我的分机中:

add_action(\'the_action_Triggered\',\'geo_srt_reset_query\',200,1);
function geo_srt_reset_query(){
    global $wp_query;
    $wp_query->set(\'meta_key\',\'place_order\');
    $wp_query->set(\'orderby\',\'meta_value_num title\');
    $wp_query->set(\'order\',\'ASC\');

    //print_r($wp_query);
    query_posts($wp_query->query_vars); // i tried with this line and without it.
}
问题是,查询结果或受影响的结果没有改变。因此,如果你认为你可以提供一些帮助,请不要犹豫。

1 个回复
SO网友:Saurabh Shukla

你的问题不完整,出于某种奇怪的原因,你省略了所有的上下文。

我希望我们同意query_posts() 这是个坏主意。上面已经说得够多了:

When to use WP_query(), query_posts() and pre_get_posts

话虽如此,你试过了吗wp_reset_postdata, wp_reset_queryrewind_posts? 我不知道您在这里做什么,但您可以阅读此内容并确定使用哪一个:

http://digwp.com/2011/09/3-ways-to-reset-the-wordpress-loop/

结束

相关推荐

Loop for sticky posts

我用过Justin Tadlock\'s 关于如何创建仅包含粘性帖子的循环的教程。代码大致如下所示:$sticky = get_option( \'sticky_posts\' ); rsort( $sticky ); $sticky = array_slice( $sticky, 0, 2 ); query_posts( array( \'post__in\' => $sticky, \'caller_get_posts\' => 1 ) ); 根据教程,我