Php Wordpress:查询帖子标题或元查询

Php Wordpress:查询帖子标题或元查询,php,wordpress,meta-key,Php,Wordpress,Meta Key,我正在寻找Wordpress自定义查询问题的解决方案 我有一个搜索表单,用户可以在其中输入一些文本,这些文本可以是post\u title中的一个单词,也可以是meta\u值(公司ID) 因此,我需要搜索post\u title中的字符串或meta\u关键字字段“id number”, 但我还有一些其他的搜索参数 这些是我的WP\u查询的参数: Array( [post_type] => company [pagination] => 1 [posts_per

我正在寻找Wordpress自定义查询问题的解决方案

我有一个搜索表单,用户可以在其中输入一些文本,这些文本可以是
post\u title
中的一个单词,也可以是
meta\u值(公司ID)

因此,我需要搜索
post\u title
中的字符串或
meta\u关键字字段
“id number”, 但我还有一些其他的搜索参数

这些是我的
WP\u查询的参数

Array(
    [post_type] => company
    [pagination] => 1
    [posts_per_page] => 10
    [paged] => 1
    [meta_query] => Array
        (
            [relation] => AND
            [0] => Array
                (
                    [0] => Array
                        (
                            [key] => id-number
                            [value] => FOOBAR
                        )

                    [1] => Array
                        (
                            [key] => post_title
                            [value] => FOOBAR
                            [compare] => LIKE
                        )

                    [relation] => OR
                )

            [1] => Array
                (
                    [relation] => AND
                    [0] => Array
                        (
                            [0] => Array
                                (
                                    [key] => country
                                    [value] => USA
                                )
                            [relation] => OR
                        )
                )
        )
)
Array[meta\u query][0][1](post\u title)
只是一个占位符-我知道这不起作用,但我如何搜索
(id号或帖子标题)
(所有其他变量…

使用WP\u查询直接执行此操作是不可能的。查询是从庞大(超过1000行)的
WP\u query::get\u posts
方法(请参阅WP includes/query.php)中的参数构造而成的,主要是一系列将
语句连接到
$where
变量的长串语句。1

现在,您可以连接到多个过滤器中,以自定义该变量(用于保存查询的SQL)的构造方式。在您的情况下,以下选项之一可能是合适的:

  • :用于更改搜索查询的解释方式(来自Wordpress内置/标准搜索表单)。然后根据搜索查询的需要手动构造where查询
  • :允许您更改整个where查询——不过,对于每个查询
使用过滤器,您不会真正地将参数发送到WP_查询并以“正常方式”构造它,而是覆盖SQL WHERE查询的构造方式。您最好完全运行自己的SQL查询。食品法典有一篇文章,详细说明了如何做到这一点



一,。WP\u Query根本不是一个完整的ORM,而是一个用于获取查询字符串变量和根据这些规则过滤帖子的专用类。

我认为您不能在元查询中使用帖子标题,因为它不存储在帖子元表中。