WordPress如何查询多个自定义文章类型并合并展示内容
合并两类文章查询实现方案
你当前使用的get_terms是用于获取分类术语的函数,无法直接查询文章内容,要同时输出默认post和自定义articles两类文章,直接通过WP_Query指定多文章类型参数即可,修改参考代码如下:
public function News() { // 组合查询参数,同时匹配两种文章类型 $news_args = [ 'post_type' => ['post', 'articles'], // 传入要查询的所有文章类型别名 'posts_per_page' => -1, // 输出所有内容设为-1,有分页需求可调整为对应数值 'post_status' => 'publish', // 仅查询已发布内容 'orderby' => 'date', // 按发布时间排序,可按需调整 'order' => 'DESC' ]; $news_query = new WP_Query($news_args); // 遍历输出文章内容 if ($news_query->have_posts()) { while ($news_query->have_posts()) { $news_query->the_post(); // 可通过get_post_type()区分文章类型,做差异化样式输出 if (get_post_type() === 'post') { // 默认博客文章(news)的输出逻辑 } else { // 自定义articles类型的输出逻辑 } } // 重置全局post数据,避免干扰页面主查询 wp_reset_postdata(); } // 若仍需获取articles的分类术语,保留原get_terms逻辑即可 $terms = get_terms([ 'taxonomy' => 'article_category', 'hide_empty' => false, ]); }
补充说明
- 如果需要按分类筛选内容,可在查询参数中添加
tax_query配置,同时适配默认post的category分类和articles的article_category分类 - 分页场景下需把
posts_per_page改为对应每页展示数量,同时添加paged参数匹配分页规则
内容的提问来源于stack exchange,提问作者iRoham
相关产品推荐
相关产品推荐

