META_COMPARE=‘LIKE’的GET_POST不起作用

时间:2012-07-07 作者:inarilo

我正在使用以下代码:

$tolettpe = "Sale";//default
if($_REQUEST[\'tolettype\']) $tolettpe = $_REQUEST[\'tolettype\'];
else if($_REQUEST[\'srch_type\']) $tolettpe = $_REQUEST[\'srch_type\'];
$args = array(
    \'numberposts\'  => $latestcount,
    \'category\'     => $catidstr,
  \'meta_key\'     => \'property_type\',
  \'meta_compare\' => \'LIKE\',
  \'meta_value\'   => $tolettpe.\'%\'
 );
$post_content = get_posts($args);
数据库中的值为“Sale | |”,请求中没有查询字符串变量。

但查询不返回任何结果。

如果我使用精确的值,并且没有meta\\u比较,它就可以工作。

有什么办法可以让这一切顺利进行吗?

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

meta_compare 可能的值为\'!=\', \'>\', \'>=\', \'<\', or \'<=\'. 默认值为\'=\'

如果要使用LIKE 您需要创建meta\\u查询,例如:

$tolettpe = "Sale";//default
if($_REQUEST[\'tolettype\']) $tolettpe = $_REQUEST[\'tolettype\'];
else if($_REQUEST[\'srch_type\']) $tolettpe = $_REQUEST[\'srch_type\'];
$args = array(
    \'numberposts\'  => $latestcount,
    \'category\'     => $catidstr,
    \'meta_query\' => array(
        array(
            \'key\' => \'property_type\',
            \'value\' => $tolettpe,
            \'compare\' => \'LIKE\'
        )
    )
);
$posts = get_posts($args);
生成的查询将搜索词置于两个%符号之间,因此无需在代码中添加任何内容。

结束

相关推荐