php - 具有多种帖子类型的 WordPress 循环的自定义过滤器
问题描述
我正在构建一个 WordPress 网站,我想在其中显示一些页面以及博客索引中的帖子。棘手的条件是,它WP_Query
应该返回所有“帖子”,但是当涉及到“页面”时,它应该只获取具有特定父 ID 的页面,例如父 ID 为 1、2、3 等。
我想知道是否有可能在WP_Query
保留 WordPress 循环和功能(例如have_posts()
,分页功能previous_posts_link()
等)的同时一次性完成此操作。这可能吗?有人能指出我正确的方向吗?请让我知道是否需要更多信息来自我的目的或者是否有任何不清楚的地方。
谢谢。
解决方案
使用插件 - wp-combine-queries找到更多研究的解决方案
示例代码如下
//------------------------
// Children pages query #1
//------------------------
$pages = [
'post_type' => 'page',
'post_parent__in' => [
1944,1962,1343,1377,909,952 // Post id's of parents
],
'posts_per_page' => -1
];
//-------------------
// All Posts Query #2
//-------------------
$posts = [
'post_type' => 'post',
'posts_per_page' => -1
];
//---------------------------
// Combined queries #1 + #2:
//---------------------------
$args = [
'paged' => get_query_var( 'paged', 1 ),
'combined_query' => [
'args' => [ $pages, $posts ],
'union' => 'UNION',
]
];
//---------
// Output:
//---------
$posts_to_display = new WP_Query( $args );
推荐阅读
- angular - 在单个 jenkins 工作节点上构建多个 Angular 项目
- r - 为什么 text2vec 中的 LSA 每次都会产生不同的结果?
- python - 构建文件:build.xml 不存在!(Pgs4a -Android.py 构建版本)
- reactjs - 将 reactjs 与 postgraphile 集成
- python - 比较 Python 中 get 请求的预期与实际 json 响应
- python - RuntimeError:尺寸不匹配,m1:[28 x 28],m2:[784 x 128]
- swift - 如果通过 Button_Action swift 调用 LocationManager,为什么位置服务背景不起作用
- powershell - PowerShell 中的点 (.) 和与号 (&) 有什么区别?
- python - 涉及牛顿法的求根问题
- ruby-on-rails - Rails - 如何修复 secrets.yml.enc