我根据对象的数值创建了一个数组。之后,我移除了数组中对象中的所有内容,除了ID。因此,它最终看起来如下所示:
[115, 123, 66, 64]
这是我的帖子数组,按照我想要的顺序排列。
然后,我想使用Ajax Load More插件按顺序显示这些帖子。因此,我将其设置为:
obj[\'post__in\'] = distanceIdFilter,
obj[\'orderby\'] = \'post__in\'
请注意,“distanceIdFilter”只是我要使用的数组的变量。当我控制台登录它时,post\\u-in正在获取正确的数组和我希望它的正确顺序。orderby还表示它是按“post\\uu in”排序的,这也是我想要的,因为它应该按该顺序显示数组中的项目。
问题来自于当我过滤Ajax加载更多的内容时,它没有将帖子按正确的顺序排列,我假设它是按日期排列的,因为默认的orderby参数。
我似乎不明白为什么订购不正确?
SO网友:Nathan Johnson
如果你看看source 在Ajax Load More插件中,您可以看到许多过滤器,可以用来修改查询。您可能需要使用alm_modify_query_args
像这样过滤:
$in_array = [ 115, 123, 66, 64 ];
add_filter( \'alm_modify_query_args\', function( $args ) use ( $in_array ) {
$args[ \'post__in\' ] = $in_array;
$args[ \'orderby\' ] = \'post__in\';
return $args;
} );
如果开发人员不是很好,并且提供了这个过滤器,那么您可以一直使用
pre_get_posts
滤器