【问题标题】:WP_Query to search post_title by REGEXWP_Query 通过 REGEX 搜索 post_title
【发布时间】:2021-07-08 10:20:51
【问题描述】:

我有一个名为“names”的 CPT,其 post_titles 类似

Koch
Müller
Schneider

现在我想创建一个 WP_Query,我可以在其中通过自定义 REGEX 搜索标题。例如,我只知道名称的第三个和最后一个字母:“**ch”、“**l**r”或“**h*****r”。

$query = new WP_Query( 
  array( 
    's' => '^..[h].....[r]$' 
  ) 
);

【问题讨论】:

    标签: mysql wordpress search


    【解决方案1】:

    如果您希望正则表达式模式匹配第三个字母为 h 且最后一个字母为 r 的名称,请使用:

    $query = new WP_Query( 
        array( 
            's' => '^..h.*r$' 
        ) 
    );
    

    【讨论】:

    • WP 会自动知道这应该是一个正则表达式吗? developer.wordpress.org/reference/classes/wp_query/… 只说s 应该是字符串形式的搜索关键字。除非有任何机制“猜测”这是一个我不知道的正则表达式,否则我认为这需要通过其中一个钩子来操作生成的 SQL 查询本身。
    • @CBroe 是的,你是对的。这似乎并不容易。你能给我一个关于你正在谈论的钩子的提示吗?我想如果我们要讨论一个自定义字段,你可以通过'compare' => 'REGEXP' 解决这个问题
    • @mokorana 通常涉及的主要钩子是developer.wordpress.org/reference/hooks/pre_get_posts 这里有几个关于处理 WP 搜索查询的问题,可能更多的是在专门的 WP SE 网站上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    相关资源
    最近更新 更多