【问题标题】:Trying to debug a WP_Query mixing taxonomies and meta fields尝试调试 WP_Query 混合分类法和元字段
【发布时间】:2021-09-05 06:31:08
【问题描述】:

我正在尝试对混合分类法和元数据的 WP_Query args 数组进行故障排除。

我需要通过过滤器将其传递给插件,因此我无法完全了解它的操作方式。但是,当我只需要坚持分类法时,它可以按预期对 WP_Query 起作用

作为参考,这是一个有效的 args 数组,超过 2 个自定义分类:

    array(3) {
  ["rv_time"]=>
  array(3) {
    ["taxonomy"]=>
    string(9) "rv_time"
    ["field"]=>
    string(4) "name"
    ["terms"]=>
    array(1) {
      [0]=>
      string(5) "1990s"
    }
  }
  ["rv_subject"]=>
  array(3) {
    ["taxonomy"]=>
    string(12) "rv_subject"
    ["field"]=>
    string(4) "name"
    ["terms"]=>
    array(1) {
      [0]=>
      string(5) "Alley"
    }
  }
  ["relation"]=>
  string(3) "AND"
}

这是不起作用的 args 数组,它有一个分类和我需要的元字段

    array(3) {
  ["rv_places"]=>
  array(3) {
    ["meta_key"]=>
    string(20) "rv_place_hierarchy"
    ["meta_compare"]=>
    string(1) "LIKE"
    ["meta_value"]=>
    string(6) "Paris"
  }
  ["rv_time"]=>
  array(3) {
    ["taxonomy"]=>
    string(9) "rv_time"
    ["field"]=>
    string(4) "name"
    ["terms"]=>
    array(1) {
      [0]=>
      string(5) "1990s"
    }
  }
  ["relation"]=>
  string(3) "AND"
}

rv_places 位被完全忽略,即视为 AND 1=1。 rv_place_hierarchy 存在于 wp_postmeta 表中,我正在寻找的值也是。

此 args 数组的预期行为是为我找到 rv_time 分类中包含 1990 年代并在 rv_place_hierarchy 中包含字符串 Paris 的帖子。

谁能帮我找出问题所在?谢谢

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    我想我找到了问题。

    我在数组中的错误级别添加元查询参数 - 在 tax_query 键内。 我需要将分类查询添加到 tax_query 键,并将元查询添加到 meta_query 键。

    所以现在这是一个适用于我的 WP_Query args 数组

        array(9) {
        /* not relevant, it's just other parameters better qualifying the query - I leave them for context for anyone who needs more info figuring out where to insert their parameters
            ["post_type"]=>
            string(10) "attachment"
            ["post_mime_type"]=>
            array(4) {
            [0]=>
            string(5) "image"
            [1]=>
            string(8) "font/svg"
            [2]=>
            string(13) "image/svg+xml"
            [3]=>
            string(15) "application/pdf"
            }
            ["order"]=>
            string(3) "ASC"
            ["orderby"]=>
            string(10) "menu_order"
            ["post_status"]=>
            string(3) "any"
            ["exclude"]=>
            string(0) ""
            ["numberposts"]=>
            int(-1)
            // end of "context" bit. from now on, the question-relevant bit
        */
            ["tax_query"]=>
            array(1) {
            ["rv_time"]=>
            array(3) {
                ["taxonomy"]=>
                string(9) "rv_time"
                ["field"]=>
                string(4) "name"
                ["terms"]=>
                array(1) {
                [0]=>
                string(5) "1990s"
                }
            }
        }
            ["meta_query"]=>
            array(1) {
            ["rv_places"]=>
            array(3) {
                ["key"]=>
                string(20) "rv_place_hierarchy"
                ["compare"]=>
                string(4) "LIKE"
                ["value"]=>
                string(6) "Paris"
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 2016-07-06
      相关资源
      最近更新 更多