php - ACF 的 WordPress 查询帖子
问题描述
更新 - 已解决
好的,所以我有三种自定义帖子类型“课程”、“模块”和“结果”。这些帖子类型设置有许多 ACF(高级自定义字段)。
我正在尝试根据他们的 ACF 使用“meta_query”查询“结果”CPT。
我试图查询的两个 ACF 字段是“模块”和“用户”。
- “模块” - 设置为过滤“模块”自定义帖子类型的“关系”字段类型。
- “用户” - 设置为(关系)“用户”字段类型。
我似乎只得到一个空数组。我已经查看了https://www.advancedcustomfields.com/resources/query-posts-custom-fields/#custom-field%20parameters上的示例,但仍然没有任何运气。
function check_results_for_user( $module_id, $user_id ){
$posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'results',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'module',
'value' => $module_id,
'compare' => '=',
),
array(
'key' => 'user',
'value' => $user_id,
'compare' => '=',
),
),
));
return $posts;
}
调用函数:
print_r(check_results_for_user($post->ID, $currentUserID ));
结果:
Array ( )
更新 - 已解决:
好的,所以设法弄清楚了。是由于“模块”关系字段将其数据保存为序列化数组:a:1:{i:0;s:1:"9";}
所以你必须将比较更改为'LIKE'并将值包装在“
function check_results_for_user( $module_id, $user_id ){
$posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'results',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'module',
'value' => '"'.$module_id.'"',
'compare' => 'LIKE',
),
array(
'key' => 'user',
'value' => $user_id,
'compare' => '=',
),
),
));
return $posts;
}
请参阅本页末尾:https ://www.advancedcustomfields.com/resources/querying-relationship-fields/
解决方案
更新 - 已解决:
好的,所以设法弄清楚了。是由于“模块”关系字段将其数据保存为序列化数组:a:1:{i:0;s:1:"9";}
所以你必须将比较更改为'LIKE'并将值包装在“
function check_results_for_user( $module_id, $user_id ){
$posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'results',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'module',
'value' => '"'.$module_id.'"',
'compare' => 'LIKE',
),
array(
'key' => 'user',
'value' => $user_id,
'compare' => '=',
),
),
));
return $posts;
}
请参阅本页末尾:https ://www.advancedcustomfields.com/resources/querying-relationship-fields/
推荐阅读
- python - 如何使用模态调用views.py的函数
- amazon-web-services - 如何通过 ECS ContainerDefinitions 中的 CloudFormation 从 AWS 参数存储中注入值
- c++ - 调用 'unordered_set< 向量的隐式删除的默认构造函数
>' - jquery - 过滤表的总和
- node.js - 如何在 NodeJS SDK 中使用 transloadit addStream() 函数?
- node.js - mongoDB express-session中的所有活动会话
- php - PHP Web套接字未在SSL中连接
- java - 如何从 android Java 的改造中访问 arralist 响应的子数组列表?
- xcode - 如何调试 SwiftUI AttributeGraph 循环警告?
- php - 我想使用 PHP 和 mysql 禁用 html 日期选择器(输入类型 =“日期”)的某些未来日期