翻阅源代码,我真的找不到任何会导致“category\\uu in”破坏结果顺序的奇怪逻辑。如果这样做,您还可以在WordPress Trac.
也很难再现这种问题,因为它可能取决于特定于您的数据库的另一个问题,或者数据以前是如何被自定义代码操纵的。
不管怎样,只要你付出一点努力,你总能解决这类问题。以下内容将过滤您的查询结果并将粘性帖子发送到顶部:
add_filter(\'the_posts\', \'bump_sticky_posts_to_top\');
function bump_sticky_posts_to_top($posts) {
$stickies = array();
foreach($posts as $i => $post) {
if(is_sticky($post->ID)) {
$stickies[] = $post;
unset($posts[$i]);
}
}
return array_merge($stickies, $posts);
}
由于您将查询限制为6篇帖子,我预计不会对处理时间产生任何重大影响。您还可以在函数中添加额外的检查,这样这个过滤器只会在您使用特定查询时运行(尽管如果您不这样做,我能想象到的最糟糕的情况是WP已经做了一些事情)。
希望有帮助!让我们知道进展如何。