WP Query Ordenar por valor meta (fecha)
20 nov 2014, 19:03:22
Vistas: 16.9K
Votos: 1
Tengo el siguiente código donde quiero ordenar por la meta clave "event_date" y solo mostrar posts después de la fecha actual y con 3 semanas de anticipación. Por alguna razón no pasa nada, incluso cuando reduzco el WP Query a solo tipo de post y orden, no se imprime nada, el script simplemente muere donde se inserta el código.
<?php $events_args = array(
'meta_query' => array(
array(
'key' => 'event_date', // Clave del campo personalizado
'value' => date('d-m-Y', strtotime("+3 weeks")), // Fecha actual + 3 semanas
'compare' => '<', // Comparar menor que
'type' => 'DATE' // Tipo de dato fecha
)
),
'posts_per_page' => 3, // Mostrar 3 posts
'post_type' => 'event', // Tipo de post
'meta_key' => 'event_date', // Clave meta para ordenar
'orderby' => 'meta_value', // Ordenar por valor meta
'order' => 'ASC' // Orden ascendente
); ?>
<?php $upcoming_events = WP_Query($events_args); ?>
<?php if($upcoming_events->have_posts()): while($upcoming_events->have_posts()): $upcoming_events->the_post(); ?>
<a href="<?php the_permalink(); ?>"><article class="post_block">
<h2><?php the_title(); ?></h2>
<p class="date"><?php $date = new DateTime(get_field('event_date')); echo $date->format('d-m-Y'); ?><?php // echo get_the_date('d-m-Y'); ?></p>
<p class="text"><?php echo get_the_excerpt(); ?></p>
</article></a>
<?php endwhile; endif; wp_reset_postdata(); ?>
¿Alguna idea de por qué no se muestra nada? Si ejecuto un simple query_posts como:
query_posts('posts_per_page=3&post_type=event&meta_key=event_date&orderby=meta_value&order=DESC');
entonces imprimirá los eventos, pero los ordenará por los eventos más nuevos, y necesito ordenar los eventos desde hoy hasta 3 semanas adelante para mostrar solo esos.
Comentarios
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta
1
Preguntas relacionadas
1
respuestas