【问题标题】:WordPress WP_Query Limited to 5 Meta Query ClausesWordPress WP_Query 限于 5 个元查询子句
【发布时间】:2021-06-20 18:00:53
【问题描述】:

如果您将“发布”更改为“草稿”或删除源子句,则查询有效。这些是传递给 WP_Query 构造函数的参数。我立即计算结果以验证 WP_Query 实际上没有返回任何结果。我检查了数据库中的数据,并确保数据是一致的。

Array
(
    [post_type] => post
    [post_status] => Array
        (
            [0] => publish
        )

    [meta_query] => Array
        (
            [view_count_clause] => Array
                (
                    [key] => _viewcount
                    [type] => NUMERIC
                )

            [actual_date_clause] => Array
                (
                    [key] => _actualdate
                )

            [start_date_clause] => Array
                (
                    [key] => _actualdate
                    [value] => 2021-03-23 00-00-00
                    [compare] => >
                )

            [end_date_clause] => Array
                (
                    [key] => _actualdate
                    [value] => 2021-03-24 00-00-00
                    [compare] => <
                )

            [color_clause] => Array
                (
                    [key] => _color
                    [type] => NUMERIC
                    [compare] => IN
                    [value] => Array
                        (
                            [0] => 4
                        )

                )

            [source_clause] => Array
                (
                    [key] => _sourcename
                    [value] => AHA
                    [compare] => =
                )

        )

    [orderby] => Array
        (
            [actual_date_clause] => DESC
        )

)

【问题讨论】:

  • 如果不显示实际的 WP_Query 请求,很难理解问题所在
  • 相关问题在这里....stackoverflow.com/questions/43556074/… 这些问题应该被赞成,因为 wp_query 的元查询限制没有得到很好的记录。
  • 解决方案:似乎有 5 个元查询的限制,尽管将帖子状态设置为草稿似乎允许 6 个元查询,这更不寻常。使用源子句时,我能够删除其中一个元查询子句,并通过删除的元查询子句手动过滤。手动过滤的子句的选择应该取决于哪个子句适用于最小的数据集。

标签: wordpress meta


【解决方案1】:

相关问题在这里....How to avoid the limit on the number of AND conditions for custom field (meta value) queries in WordPress get_posts()?

问题:

WP_Query 将元查询子句限制为五个元子句。如果您有 6 个元查询子句,您将得不到任何结果。

解决方案 1:

编写您自己的 SQL 查询。相关问题提供的示例。

解决方案 2:

删除超出 WP_Query 的 5 个元查询限制的多余元查询并手动过滤结果。要删除的元查询的选择应基于会产生最小数据集的任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多