Özel yazı türümü ve özel yazı türümle ilişkili meta kutuları üzerinden girilen özel verileri oluşturduğum bir proje üzerinde çalışıyorum. Her ne sebeple olursa olsun, meta kutularını her meta kutudaki girdilerin bir dizinin parçası olacak şekilde kodlamaya karar verdim. Mesela, enlem ve boylamı saklıyorum:
<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>
Sebep ne olursa olsun, her bir meta kutu için tekil bir postmeta girişi yapma fikrini sevdim. Açık save_post
kanca, Veri yüzden mi kaydedin:
update_post_meta($post_id, '_coordinates', $_POST['coordinates']);
Bunu yaptım çünkü üç meta kutum var ve her yazı için sadece 3 postmeta değerine sahip olmayı seviyorum; ancak şimdi bununla ilgili potansiyel bir sorun fark ettim. WP_Query'yi bu meta değerlerini temel alan yalnızca belirli gönderileri çıkarmak için kullanmak isteyebilirim. Örneğin, enlem değerleri 50'nin üstünde olan tüm gönderileri almak isteyebilirim. Bu verileri veritabanında ayrı ayrı, belki de anahtarı kullanarak latitude
olsaydım, şöyle bir şey yapardım:
$args = array(
'post_type' => 'my-post-type',
'meta_query' => array(
array(
'key' => 'latitude',
'value' => '50',
'compare' => '>'
)
)
);
$query = new WP_Query( $args );
_coordinates
Postmetanın bir parçası olarak enlemim olduğu için bu işe yaramaz.
Öyleyse benim sorum şu, meta_query
bu senaryoda benimki gibi serileştirilmiş bir diziyi sorgulamanın bir yolu var mı?