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”替换成你所需的相关字段即可。

热门文章