定义正确的WP查询和元查询

时间:2011-11-09 16:47:06

标签: php wordpress metadata

我有自定义帖子类型的列表,我正在尝试在其上实现搜索表单。搜索表单只会推送将被同一页面捕获的url查询,并根据这些查询(例如name =“..”,order =“..”等),自定义帖子类型列表将代表这些特点。

我特别坚持实现WP_Query的参数,这将允许我搜索每个自定义帖子类型的元数据。这是我的$ args字符串的结构(由print_r调用 - 这将不会显示我使用的确切语法,因为它与逻辑的完全相同,但这可以很好地理解我的参数是如何解释的):

[post_type] => obituary
[post_per_page] => 25
[meta_query] => Array
    (
        [relation] => OR
        [0] => Array
            (
                [meta_key] => last_name
                [meta_value] => Green
            )

        [1] => Array
            (
                [meta_key] => first_name
                [meta_value] => Green
            )

    )

如果我删除键数组[meta_query] [0](所以定义值的数组看起来像last_name(因此只查看一个元数据键),那么查询将正常工作。我想添加关系键和值OR以便能够找到meta_value是last_name或first_name元键。但是,这似乎不起作用,查询仍然返回自定义帖子类型的完整列表。

因为我是新手,我有什么明显的失踪吗?我查看了我能找到的文档,这个,imo,应该可以工作。

你有什么想法?

编辑:对上述内容进行更正:仅在一个meta_key下搜索只有在meta_query外定义时才会有效。

1 个答案:

答案 0 :(得分:0)

想出来。正确的结构如下:

(
    [post_type] => obituary
    [post_per_page] => 25
    [meta_query] => Array
        (
            [relation] => OR
            [0] => Array
                (
                    [key] => last_name
                    [value] => Green
                    [compare] => LIKE
                )

            [1] => Array
                (
                    [mkey] => first_name
                    [value] => Green
                    [compare] => LIKE
                )

        )

)

主要区别在于meta_query数组中meta_key和meta_value被称为键和值。