gpt4 book ai didi

php - Wordpress:查询 post_title 或 meta_query

转载 作者:行者123 更新时间:2023-12-01 12:50:03 28 4
gpt4 key购买 nike

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

我有一个搜索表单,用户可以在其中输入一些文本,该文本可以是来自 post_title 的单词或 meta_value (Company ID) .

所以,我需要搜索 post_title 中的字符串或 meta_key-Field “身份证号码”,
但我还有其他一些额外的搜索参数。

这些是我的 WP_Query 的参数:

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_query][0][1] (post_title)只是一个占位符 - 我知道这行不通,但我该如何搜索 (id-number OR post_title)(all other vars...)

最佳答案

无法直接使用 WP_Query 执行此操作。查询是根据 monstrous(超过 1000 行)WP_Query::get_posts 中的参数构造的。方法(参见 wp-includes/query.php)作为 AND 的一长串串联对 $where 的声明变量.1

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

  • posts_search :让您更改搜索查询的解释方式(来自 Wordpress 内置/标准搜索表单)。然后,您将根据需要从搜索查询中手动构建您的 where 查询。
  • posts_where : 允许您更改整个 where 查询——不过,对于每个查询。

  • 使用过滤器,您不会真正向 WP_Query 发送参数并以“正常方式”构造它,而是覆盖 SQL WHERE 查询的构造方式。完全运行自己的 SQL 查询可能会更好。法典有一篇文章 Displaying Posts using a Custom Select Query 这详细说明了如何做到这一点。

    1. WP_Query 根本不是一个完整的 ORM,而是一个用于获取查询字符串变量并根据这些规则过滤帖子的专用类。

    关于php - Wordpress:查询 post_title 或 meta_query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27770634/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com