WP_Query() mostrar entradas que terminan después de hoy

10 jul 2012, 03:48:14
Vistas: 24.6K
Votos: 6

Tengo una consulta como sigue:

$wp_query = new WP_Query( 
   'meta_key'     => 'end_date', 
   'meta_value'   => 'today', 
   'meta_compare' => '>=', 
   'post_type'    => 'vehicle' 
);

Quiero mostrar solo aquellas entradas del tipo de post vehículo que tengan la meta clave end_date que contenga una fecha posterior a la fecha de hoy.

¿Cómo se puede lograr esto?

0
Todas las respuestas a la pregunta 2
1
18

Primero, el formato de fecha debe estar en orden descendente de las unidades más grandes a las más pequeñas, es decir: año, mes, día, hora, minuto, segundo, etc., de lo contrario MySQL no puede consultar u ordenar el campo. En este ejemplo utilizo año - mes - día:

$today = date( 'Y-m-d' );
$args = array(
    'post_type' => 'vehicle',
    'meta_query' => array(
        array(
            'key' => 'end_date',
            'value' => $today,
            'compare' => '>=',
            'type' => 'DATE'
        )
    )
):
$query = new WP_Query( $args );
10 jul 2012 04:31:26
Comentarios

+1 Por cierto: Si una pregunta es lo suficientemente buena como para responderla, también debería serlo para darle un voto positivo. Pregunta relacionada y pásate por el chat algún día :)

kaiser kaiser
10 jul 2012 08:20:32
0

WordPress añadió consultas por fecha en la versión 3.7. Así que siempre puedes probar:

$today = date( 'Y-m-d' );
$args = array(
    'post_type' => 'vehicle',
    'date_query' => array(
        //establecer rangos de fechas con strings!
        'after' => 'today',
        //permitir que se devuelvan coincidencias exactas
        'inclusive'         => true,
    ),
);
$query = new WP_Query( $args );

Puedes encontrar más información sobre esto en https://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters

13 oct 2015 01:18:39