具有序列化的自定义元值的GET_USERS

时间:2015-02-23 作者:WordPress Mike

我正在尝试使用get_users 选择只有特定元值的用户。在这种情况下,元键是extraInfo 但这些值位于序列化数组中。我可以这样把用户拉出来吗?这就是我一直在尝试的,但运气不佳:

$meta_key = \'extraInfo[zip]\';
$meta_value = $zip;
$query    = get_users(\'meta_key=\'.$meta_key.\'&meta_value=\'.$meta_value);

2 个回复
SO网友:WordPress Mike

答案是,这不能以任何效率来完成。最好的方法是从序列化数组中提取数据,并将每个数据保存为它们自己的键/值对wp_usermeta 桌子我的钥匙是extraInfo 我需要的值在值中序列化。这是我用来从数据自动创建新键和值的脚本。回音只是用于屏幕上的一些反馈,没有必要。如果您有很多用户,您可能希望使用numberoffestget_users 查询希望这对别人有帮助。

<?php

$users = get_users( \'number=10\' );
foreach ( $users as $user ) {
    $extras = unserialize(get_the_author_meta( "extraInfo", $user->ID ));
    foreach ($extras as $key=> $value) {
        echo \'<p>\' . $key . \': \' . $value . \'</p>\';
        update_user_meta( $user->ID, $key, $value);
    }
    echo \'<p>\' . esc_html( $user->user_email ) . \'</p>\';
    echo \'<hr>\';
}

?>

SO网友:Abhisek Malakar
            <?php
            /**
             * are you sure that your meta value is ok
             */
            $meta_key = \'extraInfo[zip]\';
            $meta_value = $zip;
            $query    = get_users(
            array(
                \'meta_key\' => $meta_key,
                \'meta_value\' => $meta_value
            ));
结束

相关推荐

Sort users by meta_value_num

我在使用WP_User_Query 要按元数值对用户进行排序,我认为这很简单,因为它只按字母降序显示结果。 <?php $args = array( \'orderby\' => \'meta_value_num\', \'meta_key \' => \'epicredvote\', \'order\' => \'DESC\', ); // The Query $user_query = n