WP_Query() mostra i post che terminano dopo oggi

10 lug 2012, 03:48:14
Visualizzazioni: 24.6K
Voti: 6

Ho una query come segue:

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

Voglio mostrare solo quei post del tipo 'vehicle' che hanno la chiave meta end_date contenente una data successiva alla data odierna.

Come può essere realizzato?

0
Tutte le risposte alla domanda 2
1
18

Innanzitutto, il formato della data deve essere in ordine decrescente dalle unità più grandi alle più piccole, cioè: anno, mese, giorno, ora, minuto, secondo, ecc. Altrimenti MySQL non può interrogare o ordinare il campo. In questo esempio utilizzo anno - mese - giorno:

$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 lug 2012 04:31:26
Commenti

+1 A proposito: se una domanda è abbastanza buona da meritare una risposta, allora dovrebbe anche essere abbastanza buona da ricevere un voto positivo. Domanda correlata e passa in chat un giorno :)

kaiser kaiser
10 lug 2012 08:20:32
0

WordPress ha introdotto le Query per Date nella versione 3.7. Quindi potresti sempre provare:

$today = date( 'Y-m-d' );
$args = array(
    'post_type' => 'vehicle',
    'date_query' => array(
        //imposta gli intervalli di data con stringhe!
        'after' => 'today',
        //permetti il ritorno di corrispondenze esatte
        'inclusive'         => true,
    ),
);
$query = new WP_Query( $args );

Puoi trovare maggiori informazioni su https://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters

13 ott 2015 01:18:39