WP_QUERY搜索整个单词

时间:2015-02-17 作者:Tom

我正在搜索与科学相关的术语。下面是我需要查询执行的操作。如果有人搜索“bio”,他们不应该得到“biology”的搜索结果,而应该得到“bio science”的搜索结果。我需要查询返回整个单词的结果。欢迎提出任何建议。谢谢

这是我的代码:

    $queryArgs = array(
    \'post_type\' => \'faculty\',
    \'posts_per_page\' => -1,
    \'meta_query\' => array(
        \'relation\' => \'OR\',
        array( 
            \'key\' => \'proposed_keywords\', // name of custom field
            \'value\' => $keyword, // matches exaclty "123", not just 123. This prevents a match for "1234"
            \'compare\' => \'LIKE\'
        )
    )
 );

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

您需要正则表达式来实现这一点。

首先,你需要改变\'LIKE\'\'RLIKE\' (或\'REGEXP\').

第二,更换$keyword 在里面\'value\' 使用涉及单词边界的正则表达式。

像这样:

  $queryArgs = array(
    \'post_type\' => \'faculty\',
    \'posts_per_page\' => -1,
    \'meta_query\' => array(
        \'relation\' => \'OR\',
        array( 
            \'key\' => \'proposed_keywords\', // name of custom field
            \'value\' => "[[:<:]]$keyword[[:>:]]", // matches exaclty "123", not just 123. This prevents a match for "1234"
            \'compare\' => \'RLIKE\'
        )
    )
  );

SO网友:john

我(wp引擎)上的上述500,因此我使用了:

\'value\' => \'[[:<:]]\'.$keyword.\'[[:>:]]\',
\'compare\' => \'REGEXP\'
工作正常:-)

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post