Estoy trabajando en un proyecto en el que estoy creando un tipo de publicación personalizada y datos personalizados ingresados a través de meta cuadros asociados con mi tipo de publicación personalizada. Por alguna razón, decidí codificar los meta cuadros de tal manera que las entradas en cada meta cuadro sean parte de una matriz. Por ejemplo, estoy almacenando longitud y latitud:
<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 alguna razón, me gustó la idea de tener una entrada de postmeta singular para cada metabox. En el save_post
gancho, guardo los datos así:
update_post_meta($post_id, '_coordinates', $_POST['coordinates']);
Hice esto porque tengo tres metaboxes y me gusta tener solo 3 valores postmeta para cada publicación; Sin embargo, ahora me he dado cuenta de un problema potencial con esto. Es posible que desee usar WP_Query para extraer solo ciertas publicaciones basadas en estos meta valores. Por ejemplo, es posible que desee obtener todas las publicaciones que tengan valores de latitud superiores a 50. Si tuviera estos datos en la base de datos individualmente, tal vez usando la clave latitude
, haría algo como:
$args = array(
'post_type' => 'my-post-type',
'meta_query' => array(
array(
'key' => 'latitude',
'value' => '50',
'compare' => '>'
)
)
);
$query = new WP_Query( $args );
Como tengo la latitud como parte de la _coordinates
postmeta, esto no funcionaría.
Entonces, mi pregunta es, ¿hay alguna manera de utilizar meta_query
para consultar una matriz serializada como la que tengo en este escenario?