Obtener todos los usuarios con una clave meta específica

27 sept 2012, 23:23:45
Vistas: 29.6K
Votos: 6

Me gustaría usar get_users() para obtener todos los usuarios que tienen una clave meta particular, pero no quiero especificar cuál debe ser el valor porque cambiará para cada usuario. El valor es una cadena JSON. ¿Es esto posible?

0
Todas las respuestas a la pregunta 1
0
12

Puedes usar solo el argumento meta_key, el resultado será similar a usar la sentencia SQL EXISTS.

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

Alternativamente, puedes usar una cadena vacía para meta_value (el valor por defecto) y > para meta_compare. El resultado es el mismo (probablemente porque meta_value se ignora si está vacío).

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

El primer método también funciona cuando se usa WP_Query y meta_query. Ejemplo de uno de mis plugins:

    $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' // no hace nada, solo un recordatorio
            ),
            array(
                'key'     => self::get_key('keywords'),
                'compare' => 'EXISTS' // no hace nada, solo un recordatorio
            )
        ),
        'suppress_filters' => false,
    ));
27 sept 2012 23:43:06