私は、カスタム投稿タイプと、カスタム投稿タイプに関連付けられたメタボックスを介して入力されたカスタムデータを作成するプロジェクトに取り組んでいます。何らかの理由で、各メタボックスの入力が配列の一部になるようにメタボックスをコーディングすることにしました。たとえば、経度と緯度を保存しています:
<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>
何らかの理由で、各メタボックスに単一のポストメタエントリを作成するというアイデアが気に入りました。オンsave_post
フック、私はそうのようなデータを保存します。
update_post_meta($post_id, '_coordinates', $_POST['coordinates']);
私がこれを行ったのは、3つのメタボックスがあり、各投稿に3つのpostmeta値があるだけだからです。しかし、これで潜在的な問題に気づきました。WP_Queryを使用して、これらのメタ値に基づいて特定の投稿のみを引き出したい場合があります。たとえば、緯度の値が50を超えるすべての投稿を取得したい場合があります。データベースにこのデータが個別にあり、おそらくキーを使用して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
このシナリオで持っているようなシリアル化された配列を照会するために利用する方法はありますか?