正确查询有关wordpress类别的其他帖子

时间:2018-07-22 07:52:41

标签: wordpress wordpress-hook

我的情况是:我有一个类别和一些单独定义的帖子列表,这些帖子列表始终显示在类别页面的顶部。实际的或默认的帖子将在稍后的第2页或通过ajax显示。 通过简单地创建一个新的WP_Query即可解决此问题,但是wordpress实际上在主查询执行之前就执行了整个不必要的过程,只有在用户请求第2页或通过ajax请求时才应执行。 我使用钩子“ pre_get_posts”来更改主查询本身,但是只能按类别显示这些帖子,而不能通过定义帖子列表来显示。

2 个答案:

答案 0 :(得分:0)

您的实现可能很混乱……您可以张贴您编写的代码并描述添加代码的位置吗?

快速问题:您是否尝试过创建返回所需帖子的简码?然后,您可以使用[your-shortcode]在后端内部使用简码,还是使用do_shortcode('your-shortcode')使用代码?

答案 1 :(得分:0)

实际上这是一个错误测试,这是我的代码,它可以正常工作:

function rewrite_main_query ($query ){
 if( $query->is_main_query() &&   $query->is_category){
     global $wp_query; 
     $postid=37; //the post id wanted
     $query->set('p',$postid);
 }  
}
add_action('pre_get_posts', 'rewrite_main_query');

以前,我改用'post__in'而不起作用,我认为它们对'post__in'和'p'的功能相同,并且没有对其进行测试。现在可以与“ p”一起使用了。