Consultar el tipo de publicación personalizada con 2 campos personalizados (rango de fechas)

4

Busqué en WP Codex y StackExchange y obtuve algunas pistas, pero no puedo hacer funcionar esta consulta. Tengo 2 campos personalizados asociados con cada exposición en formato Y-m-d: la fecha de inicio es la fecha de inicio de la exposición y la fecha de finalización es la fecha de finalización.

Puedo mostrar fácilmente las próximas exhibiciones y exhibiciones pasadas, pero no puedo obtener el derecho de meta_query para mostrar las exhibiciones actuales (con una fecha de inicio menor o igual que hoy Y una fecha final mayor o igual que hoy). El siguiente código no muestra nada en la página. Ayuda?

$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$today = date('Y-m-d', strtotime('-6 hours'));
query_posts(array(
    'post_type' => 'exhibitions', 
    'posts_per_page' => 6, 
    'paged' => $paged,
    'orderby' => 'title',
    'order' => 'DESC',
    'meta_query'=>array(
        'relation'=>'AND',
        array(
            'key' => 'exstart-date',
            'value' => $today,
            'compare' => '<=',
            'type' => 'CHAR'
            ),
        array(
            'key' => 'exend-date',
            'value' => $today,
            'compare' => '>=',
            'type' => 'CHAR'
            )
        )
    ));
if (have_posts()) :
while (have_posts()) : the_post();
    
pregunta Ray Gulick 11.09.2011 - 23:06

1 respuesta

2

Aquí está el código con el que terminé y que funciona. Debería haber mencionado que la consulta estaba dentro del bucle, porque cuando se lo mostré a Damian Taggart de Mindshare Studios, notó que decía que debería usar WP_Query en lugar de query_posts. Gracias a Milo y otros por intentar ayudarme sin tener toda la información necesaria.

<?php
     $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
     $today = date('Y-m-d', strtotime('-6 hours'));
     $myquery = new WP_Query(array(
     'post_type' => 'exhibitions', 
     'posts_per_page' => 6,  
     'paged' => $paged,
     'orderby' => 'title',
     'order' => 'ASC',
     'meta_query'=>array(
            'relation'=>'AND',
            array(
                'key' => 'exstart-date',
                'value' => $today,
                'compare' => '<=',
                'type' => 'CHAR'
            ),
            array(
                'key' => 'exend-date',
                'value' => $today,
                'compare' => '>=',
                'type' => 'CHAR'
            )
        )
    ));
    if ($myquery->have_posts()) :
    while ($myquery->have_posts()) : $myquery->the_post();
?>
    
respondido por el Ray Gulick 20.09.2011 - 00:33

Lea otras preguntas en las etiquetas