Consultar Posts o Obtener Posts por campos personalizados, ¿es posible?
3 mar 2011, 19:31:00
Vistas: 29.2K
Votos: 9
Si tomara una consulta de post estándar.
<?php query_posts('post_type=payment'); while (have_posts()) : the_post();?>
Esta vez me gustaría consultar el post por 2 campos personalizados que pueda contener.
<?php query_posts('post_type=payment'.get_post_meta($post->ID,'bookingref', true).get_post_meta($post->ID,'customerref', true) ); while (have_posts()) : the_post(); ?>
Eso no funciona. ¿Es posible algo así y cómo se hace?
¿Alguna idea?
Maravilloso

Robin I Knight
1.56K
Todas las respuestas a la pregunta
1
3
Para consultar publicaciones por campos personalizados puedes usar el parámetro 'meta_query'
<?php
$args = array(
'post_type' => 'payment',
'meta_query' => array(
array(
'key' => 'bookingref',
'value' => 'the_value_you_want', // el valor que deseas buscar
'compare' => 'LIKE'
),
array(
'key' => 'customerref',
'value' => 'the_value_you_want', // el valor que deseas buscar
'compare' => 'LIKE'
)
)
);
query_posts($args); while (have_posts()) : the_post();
?>
No puedes usar get_post_meta dentro de la consulta porque te devuelve el valor y no la clave, además requiere un ID de publicación para obtener ese valor y antes de la consulta $post->id no está en el alcance.

Bainternet
67.7K
3 mar 2011 19:40:39
Comentarios
sí, esto es mejor que mi respuesta (eliminada) - meta_query es la forma correcta para consultas con múltiples claves personalizadas

3 mar 2011 19:51:20
Magnífico, bien hecho. Te falta un paréntesis sin embargo. Necesitas .. )); query_posts($args) ..

3 mar 2011 20:01:25
Preguntas relacionadas
3
respuestas
4
respuestas
4
respuestas
2
respuestas