是否可以使用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');
答案 0 :(得分:1)
pre_get_posts不能用于更改页面请求(页面模板)的查询,因为&#39; is_page&#39; is_singular&#39;,&#39; pagename&#39;和其他属性(取决于是否使用了相当的永久链接)已经由parse_query()方法设置。