Returnează toți utilizatorii cu o anumită meta key

27 sept. 2012, 23:23:45
Vizualizări: 29.6K
Voturi: 6

Aș dori să folosesc get_users() pentru a returna toți utilizatorii care au o anumită meta_key, dar nu vreau să specific care trebuie să fie valoarea deoarece aceasta se va schimba pentru fiecare utilizator. Valoarea este un string JSON. Este posibil acest lucru?

0
Toate răspunsurile la întrebare 1
0
12

Poți folosi doar argumentul meta_key, rezultatul va fi similar cu utilizarea instrucțiunii SQL EXISTS.

<?php
$users = get_users(array(
    'meta_key'     => 'cheia_ta_meta',
));

Alternativ, poți folosi un șir gol pentru meta_value (valoarea implicită) și > pentru meta_compare. Rezultatul este același (probabil pentru că meta_value este ignorat dacă este gol!).

<?php
$users = get_users(array(
    'meta_key'     => 'cheia_ta_meta',
    'meta_value'   => '',
    'meta_compare' => '>',
));

Prima metodă funcționează și atunci când folosești WP_Query și meta_query. Exemplu dintr-un plugin al meu:

    $links = get_posts(array(
        'post_type'   => self::POST_TYPE,
        'numberposts' => apply_filters('seoal_number_links', -1),
        'meta_query'  => array(
            'relation' => 'AND',
            array(
                'key'     => self::get_key("type_{$post->post_type}"),
                'value'   => 'on',
                'compare' => '='
            ),
            array(
                'key'     => self::get_key('url'),
                'compare' => 'EXISTS' // nu face nimic, doar un memento
            ),
            array(
                'key'     => self::get_key('keywords'),
                'compare' => 'EXISTS' // nu face nimic, doar un memento
            )
        ),
        'suppress_filters' => false,
    ));
27 sept. 2012 23:43:06