如何通过自定义域/用户元数据获取用户?

时间:2015-05-22 作者:Riffaz Starr

我使用以下代码向用户配置文件添加了一个自定义字段:

/*** Adding extra field to get the the user who creates the another user during ADD NEW USER ***/

<?php

function custom_user_profile_fields($user){
    if(is_object($user))
        $created_by = esc_attr( get_the_author_meta( \'created_by\', $user->ID ) );
    else
        $created_by = null;
    ?>
    <h3>Extra profile information</h3>
    <table class="form-table">
        <tr>
            <th><label for="created_by">Created By</label></th>
            <td>
                <input type="text" class="regular-text" name="created_by" value="<?php echo $created_by; ?>" id="created_by" /><br />
                <span class="description">The person who creates this user</span>
            </td>
        </tr>
    </table>
<?php
}
add_action( \'show_user_profile\', \'custom_user_profile_fields\' );
add_action( \'edit_user_profile\', \'custom_user_profile_fields\' );
add_action( "user_new_form", "custom_user_profile_fields" );

function save_custom_user_profile_fields($user_id){
    update_user_meta($user_id, \'created_by\', $_POST[\'created_by\']);
}
add_action(\'user_register\', \'save_custom_user_profile_fields\');
add_action(\'profile_update\', \'save_custom_user_profile_fields\');

?>
现在我看到一个领域created by 当我从管理面板创建新用户时,现在我想通过字段获取用户created_by

法典:https://codex.wordpress.org/Function_Reference/get_users

根据法典,应该是这样的:

<?php 
get_users( $args ); 
$args = array(  
        \'meta_key\'     => \'\',
        \'meta_value\'   => \'\',
    )   
$blogusers = get_users( $args );
// Array of stdClass objects.
foreach ( $blogusers as  $my_users ) {
    echo  $my_users. \'<br/>\';
}
?>
我尝试了多种选择meta_keymeta_value但所有的返回都是空的。

什么是exact meta_keymeta_value 对于我使用函数创建的字段custom_user_profile_fields ?

如何通过自定义字段获取用户created_by ?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

我使用函数custom\\u user\\u profile\\u fields创建的字段的确切meta\\u键和meta\\u值是多少?

created_by 和一些用户ID,例如:

$args = array(  
        \'meta_key\'     => \'created_by\',
        \'meta_value\'   => 123,
)
你可以使用meta_query 用于更复杂的搜索。

$args = array( 
  \'meta_query\' => array(
    array(
        \'key\' => \'created_by\',
        \'compare\' => \'EXISTS\',
    ),
  ) 
);
var_dump(get_users($args));
但从本质上讲,你所做的是正确的。

结束

相关推荐

Register users by e-mail

我想使用电子邮件地址而不是用户名来注册和登录我的成员。我已经让登录部分使用中的一些代码工作this answer. 工作正常,但正如预期的那样,wordpress仍然希望在注册页面上有一个用户名(自定义,而不是默认)。这行代码注册用户:$user_signup = wp_insert_user( $user_data );, 注册时出现以下错误:无法创建登录名为空的用户。我猜这可以通过删除适当的过滤器来解决,但我对wordpress还不熟悉。删除用户名要求的代码是什么?