it-swarm.com.de

So übergeben Sie den Benutzer meta_key und meta_value (Werte als Array)

Ich möchte den Benutzer meta_key an meta_value übergeben, aber das Array meta_value sieht folgendermaßen aus:

$user_biodata = array(
    'register_facebook_id' => 1311064406686333,
);

Ich möchte überprüfen, ob der Benutzer bereits über diese Funktion registriert ist.

$wp_users = get_users(array(
    'number'       => 1,
    'count_total'  => false,
    'fields'       => 'id',

    'meta_query' => array(
        array(
            'meta_key' => 'user_biodata',
            'meta_value' => array( 'register_facebook_id' => 1311064406686333 ),
        )
    ),
));

Aber das Ergebnis ist immer 1, auch wenn der Wert nicht vorhanden ist. Wie behebe ich ihn?

1
Opsional

Was Sie tun, ist keine gültige Methode zum Abrufen und Überprüfen von Serialisierungsdaten aus dem WP. Sie können ein Array als Benutzer-Meta einfügen, aber dieses Array hinter den Kulissen wird umgewandelt, um einen String zu serialisieren, den MySql verarbeiten kann.

Es gibt Optionen für die Suche mit dem LIKE-Operator, aber ich befürworte diese Verwendung nicht, da dies zu unerwarteten Ergebnissen führen kann.

$args = array(
'number'       => 1,
'count_total'  => false,
'fields'       => 'ID',

'meta_query' => array(
        array(
            'key' => 'user_biodata',
            'value' => 'yourValue',
            'compare' => 'LIKE',
        ),

    ),
);

$users = get_users($args);
1
Drupalizeme