J'ai le WP_Query suivant:
$custom_query_args = array(
'post_type' => 'mcg_event',
'posts_per_page' => -1,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'event_status',
'value' => 'archived',
),
array(
'key' => 'event_start_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
)
),
);
Je cherche à faire 2 choses:
archived
event_start_date
Je peux faire l'une ou l'autre de ces requêtes séparément sans problème, mais quand je les rassemble comme ci-dessus, l'ordre ne fait aucune différence.
Qu'est-ce que je rate?
Pour la commande, vous devez utiliser l'argument orderby de la requête. Donc, ça donnerait quelque chose comme ça:
$custom_query_args = array(
'post_type' => 'mcg_event',
'posts_per_page'=> -1,
'meta_key' => 'event_start_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'event_status',
'value' => 'archived',
),
)
);
Changez votre code avec ceci et pourrait vous aider avec ce que vous cherchez. Le problème ici est que nous ne pouvons pas inclure key
, order
et orderby
dans meta_query
. Mais si vous souhaitez commander, vous obtenez des publications basées sur une clé, puis transmettez les arguments de la requête comme ci-dessous:
$custom_query_args = array(
'post_type' => 'mcg_event',
'posts_per_page' => -1,
'order' => 'ASC',
'meta_key' => 'event_start_date',
'orderby' => 'meta_value_num',
'meta_query' => array(
array(
'key' => 'event_status',
'value' => 'archived',
),
)
);