如何将自定义字段添加到All User页面

时间:2017-01-13 作者:Sylvester hillary

我目前正在从事一个项目,涉及创建自定义注册表。提交后,此表单将用户数据添加到wp users表,然后将用户ID插入wp options表。我可以看到所有注册的用户。但我想自定义列出所有用户的表,以显示自定义字段。还有一个我可以用来激活用户的链接(将wp选项表中的字段集更改为true)<求你了,我需要帮助

1 个回复
SO网友:Pedro Coitinho

对于问题的第一部分,可以向users表中添加新列。

它分为两个步骤:首先需要注册列,然后输出每行的信息。

要添加新列,可以将manage_users_columns 过滤器:

function yourdomain_manage_users_columns( $columns ) {

    // $columns is a key/value array of column slugs and names
    $columns[ \'custom_field\' ] = \'Custom Field\';

    return $columns;
}

add_filter( \'manage_users_columns\', \'yourdomain_manage_users_columns\', 10, 1 );
然后需要使用manage_users_custom_column 过滤器:

function yourdomain_manage_users_custom_column( $output, $column_key, $user_id ) {

    switch ( $column_key ) {

        // look for the slug you registered
        case \'custom_field\' :

            // get your custom field, parse it however you want
            $value = get_user_meta( $user_id, \'custom_field\', true );

            // return the value
            return $value;

            break;
        default: break;
    }

    // if no column slug found, return default output value
    return $output;
}

add_filter( \'manage_users_custom_column\', \'yourdomain_manage_users_custom_column\', 10, 3 );
对于用户激活:

也许WP\\u选项表不是最好的方式,因为它会快速增长,降低网站维护速度。

您可能希望为未激活的用户创建一个新的用户角色,并将其设置为默认角色;您可以通过管理界面轻松更改。

如果您是通过插件添加此代码,您可能会执行以下操作:

function yourdomain_add_user_role() {

    // capabilities
    $caps = array(                   
        \'level_0\'   => true,      // inherit subscriber capabilities
        \'read\'      => false      // but can\'t read posts, etc
    );

    // ads the inactive user role
    add_role( 
        \'inactive\',               // Role slug
        \'Inactive Account\',       // Role name
        $caps                     // capabilities
    );
}

register_activation_hook( __FILE__, \'yourdomain_add_user_role\' );
查看codex以获得用户角色和功能的(长)列表:https://codex.wordpress.org/Roles_and_Capabilities

希望有帮助!

相关推荐

Call another page in forms

我正在为WordPress插件做一些练习。在插件中,我正在处理一个表单,我需要的是在提交时调用另一个页面。我试过了,但似乎什么都没用。<form method = \"Post\" action = \"some_file.php\"> </form>