J'essaie d'interroger un type de message personnalisé "jogos" dont la méta valeur "data_de_lancamento" (date de lancement) est <= à celle d'aujourd'hui. Ce champ utilise le format jj/mm/aa.
Les articles retournés à partir de cette requête doivent ensuite être classés en ordre décroissant par le champ personnalisé "vues".
Mon code actuel est:
date_default_timezone_set('Europe/Lisbon');
$data = date("d/m/y");
global $wpdb;
$sql = "SELECT wposts.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta, $wpdb->postmeta wpostmeta2
WHERE wposts.ID = wpostmeta.post_id
AND wposts.ID = wpostmeta2.post_id
AND wpostmeta.meta_key = 'views'
AND wpostmeta2.meta_key = 'data_de_lancamento'
AND wpostmeta2.meta_value < $data
AND wposts.post_type = 'jogos'
AND wposts.post_status = 'publish'
ORDER BY wpostmeta.meta_value ASC";
$resultado = $wpdb->get_results($sql, OBJECT);
Vous devez utiliser le paramètre meta_query
de WP_Class lors de l'exécution d'une requête. Quelque chose comme cela devrait vous diriger dans la bonne direction.
$data = date("Y-m-d");
$args = array(
'post_type' => 'jogos',
'meta_query' => array(
array(
'key' => 'data_de_lancamento',
'value' => $data,
'compare' => '<='
)
),
'meta_key' => 'views',
'orderby' => 'meta_value',
'order' => 'DESC'
);
$query = new WP_Query( $args );
Le problème, c'est qu'il est presque impossible de comparer les dates sous la forme "jj/mm/aa". En tant que tel, ce code ne fera pas l'affaire. Vous devez d’abord changer le format de votre date en "aaaa-mm-jj". C'est un moyen beaucoup plus utile de comparer les dates. En outre, vous devrez peut-être effectuer des tests avec l'opérateur pour vous assurer qu'il fonctionne correctement.
Notez que je spécifie en utilisant meta_query
qui est nouveau pour WP 3.1. meta_key
et meta_value
sont obsolètes à partir de WP 3.1; Cependant, pour commander par meta_value
, vous devez encore spécifier meta_key
comme valeur par laquelle vous souhaitez le commander. Déroutant et pas bien documenté.
Références:
http://codex.wordpress.org/Function_Reference/WP_Query#Custom_Field_Parameters
http://codex.wordpress.org/Function_Reference/WP_Query#Order_.26_Orderby_Parameters