看起来你想订购post__in
:
$samp = array (
\'post_type\' => \'product\',
\'posts_per_page\' => 12,
\'post__in\' => $init_ids_arr,
\'orderby\' => \'post__in\', // <-- Try this to fix the order
);
我们可能还想跳过粘性贴子:
\'ignore_sticky_posts\' => true,
如果我们想显示所有用户选择的帖子,那么我们可以使用:
$samp = array (
\'post_type\' => \'product\',
\'post__in\' => $init_ids_arr,
\'nopaging\' => true, // <-- No paging
\'ignore_sticky_posts\' => true, // <-- Avoid injected sticky posts
\'orderby\' => \'post__in\', // <-- Keep user defined order
);
我们添加了
nopaging
属性以删除
SQL_CALC_FOUND_ROWS
和
LIMIT
生成的SQL查询的一部分。
在运行查询之前,我们应该记住验证用户输入。比如确保$init_ids_arr
不是空数组,否则我们将得到查询的默认WHERE部分。我们还想确保它只是整数,我们不想查询大量的帖子。