Estou trabalhando em um projeto no qual estou criando um tipo de postagem personalizado e dados personalizados inseridos por meio de meta boxes associadas ao meu tipo de postagem personalizada. Por alguma razão, decidi codificar as meta boxes de forma que as entradas em cada metabox fizessem parte de uma matriz. Por exemplo, estou armazenando longitude e latitude:
<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>
Por qualquer motivo, gostei da ideia de ter uma entrada pós-meta singular para cada metabox. No save_post
gancho, eu salvo os dados da seguinte forma:
update_post_meta($post_id, '_coordinates', $_POST['coordinates']);
Fiz isso porque tenho três metaboxes e gosto de ter apenas 3 valores pós-meta para cada postagem; no entanto, agora percebi um problema em potencial com isso. Talvez eu queira usar o WP_Query para extrair apenas determinadas postagens com base nesses meta-valores. Por exemplo, eu posso querer obter todas as postagens com valores de latitude acima de 50. Se eu tivesse esses dados no banco de dados individualmente, talvez usando a chave latitude
, faria algo como:
$args = array(
'post_type' => 'my-post-type',
'meta_query' => array(
array(
'key' => 'latitude',
'value' => '50',
'compare' => '>'
)
)
);
$query = new WP_Query( $args );
Como tenho a latitude como parte do _coordinates
postmeta, isso não funcionaria.
Então, minha pergunta é: existe uma maneira de utilizar meta_query
para consultar uma matriz serializada como eu tenho neste cenário?