我正在尝试想出一种查询特定作者的 CPT 以及 meta_key 是否具有特定值的方法。
例如,我的 CPT 附加了一个作者 ID 以及一个“收件人”自定义字段。我需要的是该作者的所有此类帖子以及“收件人”=该作者的所有此类帖子。
(希望我已经解释得足够好!)
我通常对 SQL 很满意,但只是突然脑子里乱了阵脚,无法弄清楚这个问题。就像我说的,非常感谢任何帮助!
==已解决==
感谢@3pepe3建议WP_Query的meta_query参数。稍微修改了我的 CPT 逻辑,现在有了一个运行良好的系统。
解决方案是为每个包含原始发件人用户 ID 的帖子添加一个新的元字段,然后运行两个元查询来检索当前 user_id 与发件人或收件人字段匹配的帖子,如下所示:
$args = array(
'post_type' => 'activity',
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'DESC',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'sender',
'value' => $user_id,
'type' => 'BINARY',
'compare' => '='
),
array(
'key' => 'recipient',
'value' => $user_id,
'type' => 'BINARY',
'compare' => '='
)
)
);
$query = new WP_Query( $args );
最佳答案
Helo JRM47R1X, 您应该使用 WP_Query 而不是使用 SQL 查询类
<?php
$args = array(
'post_type' => 'activity',
'author' => $user_id,
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'DESC',
'meta_query' => array(
array(
'key' => 'recipient',
'value' => $user_id,
'type' => 'BINARY',
'compare' => '='
),
),
);
$query = new WP_Query($args);
?>
使用 WP_Query 的优点是您可以将元查询、分类法和日期与逻辑操作数(如 OR、AND BETWEEN...)混合使用。
关于mysql - WordPress WP_Query 多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28942530/