web-dev-qa-db-fra.com

Commande par meta_key avec deux meta_queries

Cela devrait être simple, mais je ne peux pas trouver un bon exemple de la syntaxe correcte pour le faire.

Je veux commander par la meta_key spécifiée avec deux meta_queries. Le problème est que query_posts ne semble pas aimer avoir deux meta_queries avec une meta_key. Si je supprime une des méta_quilles, le code fonctionne ou si je supprime la méta_key et change l'ordre en titre et laisse les méta_quilles seules, cela fonctionne également.

Est-il possible de commander by meta_key avec deux meta_queries?

    $args2 = array(
        'meta_key' => '_count-views_all',
        //'meta_value' => $id,
        'orderby' => 'meta_value_num',
        'order' => $sortOrder,
        'posts_per_page' => 9,
        'paged' => $paged,
        'meta_query' => array(  
                    'relation' => 'OR',
                    array(
                        'key' => 'contributorid1',
                        'value' => $id,
                        'compare' => '='
                        ),

                    array(
                        'key' => 'contributorid2',
                        'value' => $id,
                        'compare' => '='
                        )
                    )
    );
    $posts = query_posts($args2); 
}
2
Christopher

Vous pouvez faire cela en utilisant WP_Query depuis 3.1 avec un meta_query .

$args = array(
    'meta_key' => '_count-views_all',
    'orderby' => 'meta_value_num',
    'order' => $sortOrder,
    'posts_per_page' => 9,
    'paged' => $paged,
    'meta_query' => array(
        'relation'  => 'OR'
        array(
            'key'     => 'contributorid1',
            'value'   => $id,
            'compare' => '='
        ),
        array(
            'key'     => 'contributorid2',
            'value'   => $id,
            'compare' => '='
        )
    )
);

$query = new WP_Query( $args );
1
Pontus Abrahamsson