mysql - WordPress WP_Query 多个查询

标签 mysql wordpress

我正在尝试想出一种查询特定作​​者的 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/

相关文章:

php - 如何修复 'Uncaught Error: Call to a member function fetch_assoc() on integer'

mysql - 获取最大日期的计数 [MYSQL]

javascript - 获取select的值

mysql - 用于搜索和替换(需要更新)整个数据库的 SQL 查询(如果与 phpMyAdmin/MySQL - WordPress 站点中的字符串匹配)

php - 仅当页面是 WordPress 中某个子页面的子页面时才显示链接

html - wordpress 中的简单站点页脚

PHP - 从 MySQL 获取数据的令人困惑的性能问题

php - 获取当前日期值到自己的时间

wordpress - 如何自定义 WordPress 评论提交按钮

php - WordPress 内部 URL 路由/重写 API