WordPress 技巧:让搜索支持自定义字段
作为电商系统,商品的最重要的属性就是商家编码,以后进行一些店铺之间商品复制操作,甚至做供应量,也是需要靠这个属性来进行操作。商家编码,我们一直做为自定义字段,存在 post meta 中,而 WordPress 默认的搜索是不支持 post meta 的,所以今天给花生小店实现根据商家编码搜索商品的功能:
方法非常简单,只需要下面代码就可:
add_action('posts_search', function($search, $query){
global $wpdb;
if ($query->is_main_query() && !empty($query->query['s'])) {
$sql = " OR EXISTS (SELECT * FROM {$wpdb->postmeta} WHERE post_id={$wpdb->posts}.ID and meta_key = 'product_no' and meta_value like %s)";
$like = '%' . $wpdb->esc_like($query->query['s']) . '%';
$search .= $wpdb->prepare($sql, $like);
}
return $search;
},2,2);
如果你需要相关的功能,只需要将上面的商家编码的字段“product_no”替换成你所需的相关字段即可。