我有一个自定义的“事件”post类型,每个事件可以有一个可变数量的“位置”(lat/lng),存储为meta。我需要能够获得基于地图边界的“事件”帖子。
我完全可以控制如何存储帖子位置的元数据,但我想不出创建meta\\u查询的方法来检查事件中的每个位置,看看它是否符合最小/最大纬度/液化天然气。
以下是一个适用于单个位置的示例:
$args = array(
\'post_type\' => \'event\',
\'posts_per_page\' => -1,
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'coords_0_lat\',
\'value\' => array($lat_min, $lat_max),
\'compare\' => \'BETWEEN\',
\'type\' => \'DECIMAL(10,7)\'
),
array(
\'key\' => \'coords_0_lng\',
\'value\' => array($lng_min, $lng_max),
\'compare\' => \'BETWEEN\',
\'type\' => \'DECIMAL(10,7)\'
)
)
);
$query = new WP_Query($args);
但既然事件可以有任意数量的位置,我真的不能只做coords\\u 0。。。,coords\\u 1。。。,coords\\u 2。。。,等
我发现了一些关于过滤“posts\\u where”的信息,可以将“where”改为“LIKE”而不是“=”,但据我所知,我认为这在我的情况下不起作用,因为它不会将某个位置的lat/lng保持在一起。(Infromation here under "4. Sub custom field values")