wordpress - pre_get_posts修改特定页面上的查询?

时间:2014-03-22 17:30:23

标签: wordpress

是否可以使用pre_get_posts钩子来定位/修改特定页面上的查询?

目前使用query_posts执行此操作: - <?php query_posts( array( 'meta_key' => 'epicredrank', 'orderby' => 'meta_value_num', 'order' => 'DESC' , 'paged' => $paged, ) ); ?>

尝试使用pre_get_posts挂钩执行相同的操作,但它似乎不起作用。我的印象是,确实可以使用pre_get_posts定位特定页面,但也许我只是做错了?

function wpeddit_order($query) { 
if(is_page('id=2439')){ 
   $query->set('meta_key', 'epicredrank'); 
   $query->set('orderby', 'meta_value_num'); 
   $query->set('order', 'DESC'); 
} 
return $query; 
}
add_action('pre_get_posts','wpeddit_order');

1 个答案:

答案 0 :(得分:1)

来自docs

  

pre_get_posts不能用于更改页面请求(页面模板)的查询,因为&#39; is_page&#39; is_singular&#39;,&#39; pagename&#39;和其他属性(取决于是否使用了相当的永久链接)已经由parse_query()方法设置。