gpt4 book ai didi

php - WordPress 帖子元赞查询无法识别第二个赞语句

转载 作者:行者123 更新时间:2023-11-29 12:59:24 27 4
gpt4 key购买 nike

目前我已经构建了一个包含 3 个变量的搜索功能。第一个是要搜索的术语,第二个是省份(自定义字段),第三个是城市(自定义字段)。

目前其工作方式如下:

$province = $wp_query->query_vars['province'];
$city = $wp_query->query_vars['city'];

if ( !empty( $wp_query->query_vars['s'] ) && !empty( $province ) && !empty( $city ) ) {
$where .= " AND (($wpdb->postmeta.meta_key = 'province' AND $wpdb->postmeta.meta_value LIKE '" . $province . "') AND ($wpdb->postmeta.meta_key = 'city' AND $wpdb->postmeta.meta_value LIKE '" . $city . "'))";
} else if ( !empty( $wp_query->query_vars['s'] ) && !empty( $province ) ) {
$where .= " AND ($wpdb->postmeta.meta_key = 'province' AND $wpdb->postmeta.meta_value LIKE '%" . $province . "%') ";
} else if ( !empty( $wp_query->query_vars['s'] ) && !empty( $city ) ) {
$where .= " AND ($wpdb->postmeta.meta_key = 'city' AND $wpdb->postmeta.meta_value LIKE '%" . $city . "%') ";
}

如果我尝试按术语和省份进行搜索,则会返回我期望的结果。然后,当我尝试按城市(3 个参数)搜索所有按省份发布的帖子时,不会返回任何结果。如果我改变:

有 AND

$where .= " AND (($wpdb->postmeta.meta_key = 'province' AND $wpdb->postmeta.meta_value LIKE '" . $province . "') AND ($wpdb->postmeta.meta_key = 'city' AND $wpdb->postmeta.meta_value LIKE '" . $city . "'))";

有或

$where .= " AND (($wpdb->postmeta.meta_key = 'province' AND $wpdb->postmeta.meta_value LIKE '" . $province . "') AND ($wpdb->postmeta.meta_key = 'city' AND $wpdb->postmeta.meta_value LIKE '" . $city . "'))";

然后返回结果,但查询没有选择城市 LIKE 语句,而是显示所有城市,而不是仅深入到特定城市。

任何帮助将不胜感激。

最佳答案

您必须将 wp_postmeta 加入到 wp_post 3 次(加入后也按帖子 ID 分组),然后您的查询才会起作用。现在,每个帖子都在一行中,并且有一个元键和一个元值。 (您将所有条件与 AND 运算符放在一起,它也不起作用,它只能与 OR 一起使用,但我猜您想要包含所有搜索词的帖子)。

问候

关于php - WordPress 帖子元赞查询无法识别第二个赞语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23568885/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com