我正在一个项目中,在其中创建自定义帖子类型和通过与我的自定义帖子类型相关联的元框输入的自定义数据。不管出于什么原因,我决定以这样一种方式对元框进行编码,以使每个元框中的输入都是数组的一部分。例如,我要存储经度和纬度:
<p>
<label for="latitude">Latitude:</label><br />
<input type="text" id="latitude" name="coordinates[latitude]" class="full-width" value="" />
</p>
<p>
<label for="longitude">Longitude:</label><br />
<input type="text" id="longitude" name="coordinates[longitude]" class="full-width" value="" />
</p>
无论出于何种原因,我都喜欢为每个元框都使用一个单一的postmeta条目的想法。在save_post
钩子上,我像这样保存数据:
update_post_meta($post_id, '_coordinates', $_POST['coordinates']);
我这样做是因为我有三个metabox,每个帖子只有3个postmeta值;但是,我现在意识到了一个潜在的问题。我可能想使用WP_Query仅根据这些元值提取某些帖子。例如,我可能想获取所有纬度值大于50的帖子。如果我单独在数据库中拥有此数据,也许使用key latitude
,我将执行以下操作:
$args = array(
'post_type' => 'my-post-type',
'meta_query' => array(
array(
'key' => 'latitude',
'value' => '50',
'compare' => '>'
)
)
);
$query = new WP_Query( $args );
由于我将宽容度作为_coordinates
事后评估的一部分,所以这行不通。
所以,我的问题是,有没有办法meta_query
像在这种情况下那样查询序列化的数组?