如何调整WP_QUERY中的搜索参数以仅显示完全相同的结果?

时间:2013-08-21 作者:Derfder

现在我使用的是:

$args_search = array( 
    \'s\' => $search,
    \'post_type\' => array( \'post\' )
);

$wp_query = new WP_Query( $args_search );
但问题是它显示了一切。

E、 g.如果$search 只是"2386" 我在db中发布了3条帖子:

"12386111""23861111""11112386"

我将得到3个结果。

但我想得到0个结果。因为这不是一场完整的比赛。

仅当搜索是23861111 然后我需要得到1的结果23861111。

或者什么时候11112386 我需要键入完整的11112386 作为$search变量,而不仅仅是2386或238来获得结果11112386

如何更改查询以获得所需的结果,而不是所有包含搜索字符串的内容?

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

$args_search = array( 
    \'s\' => $search,
    \'exact\' => 1,
    \'post_type\' => array( \'post\' )
);
Codex中没有“精确”参数的文档,但最好(当然最可靠)的文档是代码本身。请参见line 2200 of query.php

限制:如果搜索参数上有空格,它将不起作用,因为WP_Query 将带有空格的搜索词视为不同的搜索词。

因此,您可以使用:

$args_search = array( 
    \'s\' => $search,
    \'post_type\' => array( \'post\' )
);
// if no spaces in search we put exact argument
if ( count(explode(\' \', $search)) == 1 ) $args_search[\'exact\'] = 1;
代码上的注释。正当\'post_type\' => array( \'post\' ) 不是您发布的“posts”(复数)。

结束

相关推荐

使用WP_Query自定义主页分页

我遇到了一个情况,我所做的所有搜索都没有让我取得成功。我有一个带有自定义wp\\u查询的静态主页模板,如下所示(在自定义页面上的另一个站点上工作--此外,出于测试目的,我将posts\\u per\\u page设置为1,并且在仪表板中将posts设置为1):<?php global $paged; global $bday_parties; $temp = $bday_parties; $bday_parties = null;