我有一个查询,它从最近的3篇轮播帖子中提取字段:
get_posts(\'posts_per_page=3\')
我需要重新排序结果1、2、3
是的
3、1、2。
有什么办法吗?
我有一个查询,它从最近的3篇轮播帖子中提取字段:
get_posts(\'posts_per_page=3\')
我需要重新排序结果1、2、3
是的
3、1、2。
有什么办法吗?
按照您想要的方式重新排序真的很简单。概念验证:
$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()
.我认为WordPress没有提供任何方式来订购您喜欢的帖子。它有ASC
和DESC
列出帖子的顺序。
但您可以为每个旋转木马帖子创建一个自定义字段,以定义旋转木马项目订单。假设您创建了名为carousel-order
并为每个帖子添加数值。
然后您可以像这样添加自定义订单。
get_posts(
array(
\'posts_per_page\' => \'3\',
\'meta_key\' => \'carousel-order\',
\'orderby\' => \'meta_value_num\'
)
);
谢谢你的想法。最后,我使用偏移量为旋转木马重新订购创建了两个不同的查询:
第一个查询显示第三个最近的帖子:
$args = array( \'posts_per_page\' => 1, \'offset\'=> 2 );
$thirdPost = get_posts( $args );
然后将所需字段放入第一个转盘滑动分区。下一个查询获取第一个和第二个最近的帖子:
$args2 = array( \'posts_per_page\' => 2, \'offset\'=> 0 );
$firstPosts = get_posts( $args2 );
然后使用“for each”将所需字段放入第二个和第三个旋转木马幻灯片分区。我在尝试ajaxwp_query, 我用以下代码成功地获得了主页帖子。然后我补充道conditional tags 修改其他页面的查询,如Category page 问题是conditional tags 没有在这个功能内工作,它一直给我相同的主页帖子。我在中使用此代码function.php 文件:add_action( \'wp_ajax_wp_ajax_posts\', \'wp_ajax_posts_init\' ); function wp_ajax_posts_init() {