J'ai une taxonomie wp_query et je voudrais commander la liste par titre et par méta valeur (valeur numérique)
OBJECTIF - SORTIE COMME CECI: (est-ce possible avec WP_QUERY et WP3.1)
A (CLE META intéressante = 1 )
B (CLE META intéressante = 1 )
C (CLE META intéressante = 1 )
A (CLE META intéressante = 0 )
B (CLE META intéressante = 0 )
Vous pouvez filtrer la partie orderby
de la requête pour obtenir ce que vous voulez (essayer de la transmettre via le paramètre orderby
ne fonctionnera pas, elle sera filtrée). Cet exemple simple ajoute l'ordre de tri meta_value
avant l'ordre de tri des titres standard.
add_filter( 'posts_orderby', 'wpse15168_posts_orderby' );
$query = new WP_Query( array(
'meta_key' => 'interesting',
'orderby' => 'title',
'order' => 'ASC',
) );
remove_filter( 'posts_orderby', 'wpse15168_posts_orderby' );
function wpse15168_posts_orderby( $orderby )
{
global $wpdb;
$orderby = $wpdb->postmeta . '.meta_value DESC, ' . $orderby;
return $orderby;
}
vous ne pouvez pas mélanger l'ordre croissant et décroissant, mais si vous changez les zéros et les uns, cela pourrait fonctionner:
$query = new WP_Query( array( 'meta_key => 'interesting',
'orderby' => 'meta_value_num title',
'order' => 'ASC' ) );