0

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

4

2 回答 2

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”一起使用。

于 2018-07-22T13:19:39.220 回答
0

您的实现可能很混乱......您可以发布您编写的代码并描述您添加它的位置吗?

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

于 2018-07-22T11:07:51.483 回答