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

0
Todas las respuestas a la pregunta 1
3
19

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.

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

anu anu
3 mar 2011 19:51:20

Magnífico, bien hecho. Te falta un paréntesis sin embargo. Necesitas .. )); query_posts($args) ..

Robin I Knight Robin I Knight
3 mar 2011 20:01:25

Hay una gran oportunidad aquí para educar, usando WP_Query, y los costos de rendimiento de las meta queries

Tom J Nowell Tom J Nowell
17 ene 2017 21:53:39