现在还不完全清楚您想做什么,但粘性帖子应该在顶部,也就是显示的第一个帖子,除非您已经努力防止这样做。这是默认设置。我刚刚用您的查询对此进行了测试,只将类别ID更改为我的服务器上存在的内容。
为了防止这种棘手的后期处理(即导致相反的行为),可以将参数传递给WP_Query
例如:
$my_query = new WP_Query(\'category_name=animals&showposts=10&ignore_sticky_posts=true\');
或在查询运行之前设置值,使用:
$my_query->set(\'ignore_sticky_posts\',true); // $my_query could be any instantiated WP_Query variable.
也许可以搜索你的主题和插件
ignore_sticky_posts
并查看查询是否有问题。
您还可以尝试强制粘性帖子与以下内容交互:
function force_sticky_wpse_98187($qry) {
$qry->set(\'ignore_sticky_posts\',false);
}
add_action(\'pre_get_posts\',\'force_sticky_wpse_98187\',1000);
这会添加一个具有任意高优先级的过滤器,以便它可以合理地作为钩子上的最后一个操作运行。我不知道它是否有效。它完全没有经过测试。这也会改变(如果可行的话)所有查询,这可能太激进了。您可能希望添加其他条件以限制其运行。