php - 与关系或不工作的 Wordpress 税务查询
问题描述
我正在运行一个 wordpress 循环,它从两种帖子类型中获取帖子。
我需要循环来抓取设置了某些类别的帖子。由于它是两种不同的帖子类型,它们都有一个类别分类法。当用户在前端选择一个类别时,我希望循环从一个帖子类型中获取所有帖子,该类别在其各自的分类下,以及来自其他帖子类型的所有帖子,该类别在其分类下。
为了简化我正在尝试做的事情的描述:
- 用户点击前端的“头发和皮肤护理”类别
- Loop 从“category_name”中抓取“post”下所有“hair-skin-care”类别的帖子
- Loop 从“quiz_category”中抓取“quizzes”下的所有帖子,类别为“hair-skin-care”
- 显示找到的所有帖子
从两种帖子类型中获取循环都不是问题,但我一直试图让循环仅获取具有特定类别的帖子。我正在尝试一个“tax_query”,但循环似乎完全忽略了它,就好像我根本没有放 tax_query 一样。
在 tax_query 之外自行运行“category_name”或“quiz_category”就可以了。但是在 tax_query 中,它们都被完全忽略了。
$cat = $_GET['cat'];
$cat = sanitize_text_field($cat);
$args = array(
'post_type' => array('post', 'quizzes'),
'posts_per_page' => -1,
'category__not_in' => array( 9, 10 ),
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'category_name',
'field' => 'slug',
'terms' => $cat
),
array(
'taxonomy' => 'quiz_category',
'field' => 'slug',
'terms' => $cat
),
)
);
解决方案
我认为问题在于您正在为术语 slug 值传递一个字符串。
在 之外tax_query
,我认为您可以传递字符串或数组。在具有多种分类法的内部,我在文档tax_query
中看到的唯一示例值被包装在数组中。
文档没有在我能找到的任何地方明确说明这一点。但是,如果您可以只使用字符串而不是数组,那么我直接从上面链接的文档中复制的这个片段将是它应该显示的地方:
$args = array(
'post_type' => 'post',
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'quotes' ),
),
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array( 'post-format-quote' ),
),
),
);
$query = new WP_Query( $args );
话虽如此,您的代码应该如下所示:
$cat = $_GET['cat'];
$cat = sanitize_text_field($cat);
$args = array(
'post_type' => array('post', 'quizzes'),
'posts_per_page' => -1,
'category__not_in' => array( 9, 10 ),
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'category_name',
'field' => 'slug',
'terms' => array($cat)
),
array(
'taxonomy' => 'quiz_category',
'field' => 'slug',
'terms' => array($cat)
),
)
);
如果这不起作用,您可以回显$cat
变量并发布结果吗?
推荐阅读
- leaflet - Leaflet.markercluster 中的图层组
- excel - 重命名 Google 图片 URL 列表并保存在新文件夹中
- angular - 存储从 API 下载的数据
- c# - EventHub 触发函数从应用程序设置中获取 EventHub 名称
- javascript - React + redux + axios + thunk,等待interceptors.response 刷新token
- sql-server - SQL 删除、插入或更新触发器后
- c - 递归结构(二叉树):通过结构指针从函数内部获取值
- tensorflow - 如何使用更快的 RCNN 模型获取在 tensorflow 中检测到的对象的名称
- android - 当我为像素 2 xl 构建 android-msm-wahoo-4.4-pie-r2 的 msm 的 Android 内核时,使失败
- android - 如何直接从 APK 运行嵌入式 DEX 代码