通过QUERY_POSTS搜索标题词(不完全匹配)

时间:2013-03-05 作者:Gecko Room

我们正在建立一个数据库,其中包含来自不同运动员的个人数据,如姓名、身高、体重等。

我们已经成功构建了一个详细的过滤器query_posts.

除了用于按姓名筛选运动员的文本输入字段外,每个筛选字段都正常工作。问题是,当我们寻找一个运动员的名字时,表格只允许我们按其确切的名字来查找运动员。

例如:如果我们正在寻找一位名叫约翰·多伊的运动员,我们需要写出帖子标题的确切名称(“约翰·多伊”)。相反,我们希望只需键入“John”或“Doe”即可得到结果。

我们的query_posts 筛选器如下所示:

query_posts( array(
    \'name\' => $sportsman_name,
    \'post_type\' => \'db\',
    \'posts_per_page\' => 100,
    \'paged\' => $paged,
    \'category_name\' => $sport,
    \'meta_query\' => array(
        $height,
        $weight,
        $tshirt_size,
        $foot_size,

    )
) );
表单字段就是这样的:

<input name="sportsman" type="text">

这就是我们如何创建字符串来过滤query_posts:

$sportsman = $_GET["sportsman"];

    if($sportsman == \'\'){
        $sportsman_name = null;
    }else{
        $sportsman_name = $sportsman;
    }

2 个回复
SO网友:itzmekhokan

使用搜索参数“s”而不是“name”

query_posts( array(
\'s\' => $sportsman_name,
\'post_type\' => \'db\',
\'posts_per_page\' => 100,
\'paged\' => $paged,
\'category_name\' => $sport,
\'meta_query\' => array(
    $height,
    $weight,
    $tshirt_size,
    $foot_size,
)));

SO网友:tfrommen

首先,使用WP_query 而不是query_posts.

$my_query = new WP_query( args... );
if ( $my_query->have_posts() ) {
    $my_query->the_post();
    $sportsman = ...
}
其次,要不按精确值过滤,可以使用正则表达式(例如,将数组中的名称设置为"/^.*{$sportsman_name}.*$/"). 身份证件did not test 那个

结束

相关推荐

Hide gravity forms

我在我的网站上设置了重力表单,我想根据用户是否已在表单/数据库中发布条目来隐藏/显示表单。如果他们做了一个条目,那么我想隐藏它并显示一些简单的文本。我知道重力形式允许你限制参赛人数,但这并不是我想要的。我猜我必须查询数据库,但我不确定最好的编写方法。我是否需要使用诸如get\\u posts之类的工具来检查作者是否有条目?这是最好的方式吗?