Restituire tutti gli utenti con una specifica meta key

27 set 2012, 23:23:45
Visualizzazioni: 29.6K
Voti: 6

Vorrei utilizzare get_users() per restituire tutti gli utenti che hanno una particolare meta_key, ma non voglio specificare quale deve essere il valore perché cambierà per ogni utente. Il valore è una stringa JSON. È possibile?

0
Tutte le risposte alla domanda 1
0
12

Puoi utilizzare soltanto l'argomento meta_key, il risultato sarà simile all'uso dell'istruzione SQL EXISTS.

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

In alternativa, puoi utilizzare una stringa vuota per meta_value (valore predefinito) e > per meta_compare. Il risultato è lo stesso (probabilmente perché meta_value viene ignorato se vuoto!).

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

Il primo metodo funziona anche utilizzando WP_Query e meta_query. Ecco un esempio tratto da un mio plugin:

    $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' // non fa nulla, solo un promemoria
            ),
            array(
                'key'     => self::get_key('keywords'),
                'compare' => 'EXISTS' // non fa nulla, solo un promemoria
            )
        ),
        'suppress_filters' => false,
    ));
27 set 2012 23:43:06