【问题标题】:WordPress: search by Term, Post meta OR Post title togetherWordPress:按术语搜索,一起发布元或帖子标题
【发布时间】:2016-10-25 07:11:38
【问题描述】:

我们正在编写一个自定义搜索功能,它通过给定的词 OR Post Meta OR post_title

搜索帖子

我们有多个术语和发布元值,我们正在寻找对少数元值和术语值应用 OR 运算的解决方案。

下面是我们到目前为止的查询,但当然,它没有按我们的要求工作

$search_keyword = $_GET['search_keyword'];

$args = array(
    'post_type' => 'product',
    'post_title' => $search_keyword,
    'tax_query' => array(
        array(
            'taxonomy' => 'property-city',
            'terms' => $search_keyword,
            'field' => 'slug',
            'operator'  => 'LIKE'
        ),
        array(
            'taxonomy' => 'property-type',
            'terms' => array('sale', 'rent'),
            'field' => 'slug',
            'operator'  => 'IN'
        )
    ),
    'meta_query' => array(
        array(
            'key' => 'min_beds',
            'value' => '2',
            'compare' => '>=',
        ),
        array(
            'key' => 'min_baths',
            'value' => '1',
            'compare' => '>=',
        ),
        array(
            'key' => 'address',
            'value' => $search_keyword,
            'compare' => 'LIKE',
        )
    )
);

$the_query = new WP_Query($args);

$search_keyword 包含需要搜索的字符串值。并且只应选择元键与给定$search_keyword 匹配的那些帖子 OR 与术语匹配 OR 与帖子标题匹配

另外,保持其他条件不变。

注意:关系 b/w Taxonomy property-type 和 Post Meta min_beds/min_baths 应该是 AND

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    我很确定这是不可能的。您可以编写自定义 SQL,或者只执行两三个查询并合并结果 - 这可能是最简单的。

    【讨论】:

    • 我花了几个小时寻找解决方案。是的,这是唯一的解决方案。因此,我编写了 3 个选择查询将它们连接在一起,获取帖子(唯一)ID,并使用 post__in => $unique_IDs 运行另一个查询,它可以工作:)
    猜你喜欢
    • 2011-12-19
    • 2013-10-10
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多