按照您想要的方式重新排序真的很简单。概念验证:
$p = array(1,2,3);
var_dump($p);
array_push($p,array_shift($p));
var_dump($p);
使用WordPress代码:
$p = get_posts(\'posts_per_page=3\');
array_push($p,array_shift($p));
var_dump($p);
为了让它更有趣,您可以对过滤器执行同样的操作。自从
get_posts()
使用
wp_query()
您可以使用
post_results
钩子以对结果重新排序。
function post_shift_wpse_166761($p) {
remove_filter(\'posts_results\',\'post_shift_wpse_166761\');
array_push($p,array_shift($p));
return $p;
}
add_filter(\'posts_results\',\'post_shift_wpse_166761\');
$p = get_posts(
array(
\'suppress_filters\' => false,
\'posts_per_page\' => 3
)
);
var_dump(wp_list_pluck($p,\'ID\'));
请注意,您还必须通过
suppress_filters
参数到
get_posts()
.