wordpress - 为什么 get_posts() 返回空数据?
问题描述
我正在尝试获取与元查询匹配的某种类型的帖子,但无论我尝试什么,我都会得到空结果。我有
$meta_query = array(
'relation' => 'OR',
array(
'key' => '_wpm_gtin_code',
'compare' => 'EXISTS'
),
array(
'key' => '_product_code',
'compare' => 'EXISTS'
)
);
$args = array(
'meta_query' => $meta_query,
'post_type' => 'product',
'post_status' => 'publish'
//'posts_per_page' => -1
);
error_log(print_r($args, true));
$posts = get_posts( $args );
error_log(print_r($posts, true));
我在日志文件中看到
[02-Mar-2020 06:51:12 UTC] Array
(
[meta_query] => Array
(
[relation] => OR
[0] => Array
(
[key] => _wpm_gtin_code
[compare] => EXISTS
)
[1] => Array
(
[key] => _product_code
[compare] => EXISTS
)
)
[post_type] => product
[post_status] => publish
)
[02-Mar-2020 06:51:12 UTC] Array
(
)
当我使用此 SQL 查询手动选择数据时:
SELECT * FROM wp_posts
INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )
WHERE wp_posts.post_type = 'product' AND wp_posts.post_status = 'publish' AND
(wp_postmeta.meta_key = '_wpm_gtin_code' OR wp_postmeta.meta_key = '_product_code')
我得到两行的正确结果。我究竟做错了什么?
解决方案
$meta_query = array(
'relation' => 'OR',
array(
'key' => '_wpm_gtin_code',
'compare' => 'EXISTS',
'value' => '' // This is ignored, but is necessary...
),
array(
'key' => '_product_code',
'compare' => 'EXISTS',
'value' => '' // This is ignored, but is necessary...
)
);
$args = array(
'meta_query' => $meta_query,
'post_type' => 'product',
'post_status' => 'publish',
//'posts_per_page' => -1
);
尝试添加'value' => ''
数组...
推荐阅读
- python - 无法使用 ModelViewSet 更改 Django 用户模型的用户密码
- amazon-web-services - Terraform 更新 Route53 域名称服务器
- string - 查找字符串在给定字符串中作为子序列出现的时间,带有通配符
- c - C fscanf 给出分段错误。说缺少文件(我的文件名为 lab4.dat 并且位于同一位置)
- swiftui - SwiftUI,UIScreen.main.bounds.midY 默认不居中
- azure-data-factory - 使用参数的 Azure 数据工厂数据流表达式生成器
- python - 'DataFrame' 对象没有属性 'map' 添加更多列
- bash - 使用特殊字符显示文件名
- java - 不确定为什么这个特定的测试用例不适用于合并二叉树
- r - 如何将 ggplot 的参数传递给重叠函数?