web-dev-qa-db-de.com

Bestellung per meta_key mit zwei meta_queries

Das sollte einfach sein, aber ich kann einfach kein gutes Beispiel für die richtige Syntax dafür finden.

Ich möchte nach dem angegebenen meta_key mit zwei meta_queries bestellen. Das Problem ist, dass query_posts anscheinend nicht mit zwei meta_queries mit einem meta_key zufrieden ist. Wenn ich eine der meta_queries herausnehme, funktioniert der Code, oder wenn ich den meta_key entferne und die orderby in title ändere und die meta_queries in Ruhe lasse, funktioniert es auch.

Gibt es eine Möglichkeit, mit zwei meta_queries durch meta_key zu bestellen?

    $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

Sie können dies mit WP_Query seit 3.1 mit einer meta_query tun.

$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