【问题标题】:Properly query additional posts for wordpress category正确查询 wordpress 类别的附加帖子
【发布时间】:2018-07-22 21:19:39
【问题描述】:
我的情况是:我有一个类别和一些单独定义的帖子列表,始终显示在类别页面的顶部。实际或默认帖子将在第 2 页后面显示,或通过 ajax 显示。
通过简单地创建一个新的 WP_Query,这个问题就解决了,但是 wordpress 在此之前实际上在主查询中执行了整个不必要的过程,这应该只在用户请求第 2 页或通过 ajax 时才会发生。
我使用钩子“pre_get_posts”来更改主查询本身,但只能按类别显示这些帖子,而不是通过定义帖子列表。
【问题讨论】:
标签:
wordpress
wordpress-hook
【解决方案1】:
您的实现可能很混乱...您可以发布您编写的代码并描述您添加它的位置吗?
快速提问:您是否尝试过创建返回所需帖子的简码?然后,您可以使用 [your-shortcode] 在后端内部使用短代码,还是使用 do_shortcode( 'your-shortcode' ) 使用您的代码?
【解决方案2】:
实际上这是一个错误测试,这是我的代码并且它有效:
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”一起使用。