正文:
当WordPress站点需要处理多语言自定义文章类型时 ,站点自定义文章类型、站点快手粉丝平台永不掉粉个人免签码支付》
站点 我们最近遇到一个典型案例:客户的站点快手点赞有收益吗多语言商城需要同时支持"产品编号:123或456"这类数字组合查询,并提供可直接使用的站点代码方案。通过改造SQL查询实现数字"或"条件搜索,站点我们发现核心在于改造posts_search和posts_where这两个过滤器 。站点提升网站流量排名、站点微信域名防封跳转、站点又不影响WordPress核心查询逻辑。站点而原生搜索仅支持单一关键词匹配。站点快手点赞秒1000双击0.01元以下是站点经过实战验证的解决方案 :add_filter(posts_search, multilingual_numeric_search, 10, 2); function multilingual_numeric_search($search, $wp_query) { global $wpdb; if (!is_admin() || !$wp_query->is_search()) return $search; // 匹配"编号:123或456"格式 if (preg_match(/编号 :(.+?)或(.+?)/, $wp_query->query_vars[s], $matches)) { $meta_keys = [_product_no, _product_no_en, _product_no_zh]; $or_conditions = []; foreach ($matches as $key => $value) { if ($key === 0) continue; // 跳过完整匹配组 if (is_numeric(trim($value))) { foreach ($meta_keys as $meta_key) { $or_conditions[] = $wpdb->prepare( "($wpdb->postmeta.meta_key = %s AND $wpdb->postmeta.meta_value = %d)", $meta_key, $value ); } } } if (!empty($or_conditions)) { $search = str_replace( "AND ((($wpdb->posts.post_title LIKE", "AND ((".implode( OR , $or_conditions).") OR (($wpdb->posts.post_title LIKE", $search ); } } return $search; }实现效果对比
- 改造前 :搜索"编号 :123或456" → 返回0结果
- 改造后