it-swarm.com.de

Geben Sie alle Benutzer mit einem bestimmten Metaschlüssel zurück

Ich möchte get_users() verwenden, um alle Benutzer mit einem bestimmten meta_key zurückzugeben, möchte jedoch nicht angeben, wie der Wert lauten soll, da er sich für jeden Benutzer ändert. Der Wert ist eine JSON-Zeichenfolge. Ist das möglich?

5
emersonthis

Sie können nur das Argument meta_key verwenden. Das Ergebnis ähnelt dem der Anweisung EXISTS sql.

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

Alternativ können Sie eine leere Zeichenfolge für meta_value (Standardeinstellung) und > für meta_compare verwenden. Das Ergebnis ist das gleiche (wahrscheinlich, weil meta_value ignoriert wird, wenn es leer ist!).

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

Die erste Methode funktioniert auch bei Verwendung von WP_Query und meta_query. Beispiel aus einem Plugin von mir:

    $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' // doesn't do anything, just a reminder
            ),
            array(
                'key'     => self::get_key('keywords'),
                'compare' => 'EXISTS' // doesn't do anything, just a reminder
            )
        ),
        'suppress_filters' => false,
    ));
8
chrisguitarguy