【发布时间】:2020-05-21 11:26:10
【问题描述】:
如果当前用户在元值数组中,我无法查询当前用户的 cpt。
查询参数
$args = [
'post_type' => $cp::get_module_cpt(),
'posts_per_page' => - 1,
'meta_query' => [
'relation' => 'AND',
[
'key' => 'premium_module',
'value' => 0,
'compare' => '=',
],
[
'key' => 'permit_users',
'value' => get_current_user_id(),
'compare' => 'IN',
],
],
];
元键
permit_users
元值
如果有值
数据库
a:5:{i:0;s:2:"23";i:1;s:1:"2";i:2;s:1:"6";i:3;s:1:"7";i:4;s:2:"27";}
在 PHP 中
Array
(
[0] => 29
[1] => 28
...
)
如果没有值
返回 false 或空数组。取决于之前是否设置过该字段。
另外,
我尝试将比较设置为= 等于,但这也没有用。可能是因为值在数组中。
结果查看
查询应该返回所有在 permit_users 键中具有当前用户 ID 的帖子。
重要提示:
permit_users是可选的,因此如果该字段没有值(false)或空数组,则查询应忽略它。
更新
我尝试与似乎有效的LIKE 进行比较。但是比较序列化数据好吗?如果当前用户是 11 并且 value 中包含 111 用户怎么办?
【问题讨论】:
-
您能否发布存储在数据库中元
permit_users的示例值 -
这是一个序列化的,我尝试使用
LIKE似乎工作但如果字段未设置或为空怎么办?并且使用LIKE在序列化数据中搜索是否很好?如果当前用户 id 是11并且元值具有用户 id111会发生什么?我正在用 db 值更新问题。 -
@gvgvgvijayan 我有更新问题,请看一下。
标签: wordpress meta-query