$wpdb查询自定义字段值中的价格

时间:2016-02-14 作者:Daniel Lemes

分类广告列表网站在搜索产品时只有3个标准:普通搜索、类别和地区(对于ZIP、城市或完整地址)这是不够的,我真的需要包括一个基本的价格体系,这样用户可以在搜索之前设置价格范围。

查看主题文件,我找到了基于一个或多个标准的不同查询的函数。较小的是仅针对类别的查询,因此我将以其为例:

elseif ($s_for == \'\' && $s_cat !== \'\' && $s_to == \'\') {
$query = "SELECT $wpdb->posts.*
FROM
$wpdb->posts
INNER JOIN $wpdb->term_relationships
ON $wpdb->posts.ID = $wpdb->term_relationships.object_id
WHERE
$wpdb->posts.post_type = \'$cc_post_type\'
AND ($wpdb->postmeta.meta_key = \'$cc_price\' AND $wpdb->postmeta.meta_value LIKE \'%$s_prc%\')
AND $wpdb->posts.post_status = \'$cc_post_status\'
AND ($wpdb->term_relationships.term_taxonomy_id = {$s_cat})
GROUP BY ID {$limit}";
}
产品价格存储在自定义字段(cc\\U价格)中,因此我尝试。。。

AND ($wpdb->postmeta.meta_key = \'$cc_price\' AND $wpdb->postmeta.meta_value LIKE \'%$s_prc%\')
。。。使用一个简单的复选框($s\\u prc添加到函数中),带有值(仅用于测试目的),但它不起作用,“查询时没有结果”。这个问题正确吗?我在其他方面错了吗?

1 个回复
SO网友:Barış ERTUĞRUL

您可以尝试以下操作:

AND ($wpdb->postmeta.meta_key = \'cc_price\' AND $wpdb->postmeta.meta_value LIKE \'%$s_prc%\')
(使用cc\\U价格而不是$cc\\U价格)