无法修改管理面板中的WordPress用户列表

时间:2019-03-18 17:31:40

标签: php wordpress

我目前正在尝试修改WordPress管理信息中心中的名称列。我在这里尝试过此代码,但无法正常工作:

add_action('manage_users_custom_column', 'modify_users_column_content', 10, 3 );
function modify_users_column_content( $value, $column_name, $user_id ) {

    if ( $column_name === 'name' ) {
        $value .= '<span> |</span>';
    }

    return $value;
}

当我error_log column_name参数时,我仅从用户管理插件UltimateMember中获得最后两列:

enter image description here

第一列不在数组内。我试图理解它,但是没有机会。我不明白。

1 个答案:

答案 0 :(得分:1)

  

第一列不在数组内。我试图了解   但是没有机会。我不明白。

因为manage_users_custom_column过滤器用于生成 custom 列的输出,而不是默认列(如“ Name”列)的输出。

但是,您可以通过将默认的“名称”列(键为name)替换为自定义变量来实现所需的目标,如下所示:

add_filter( 'manage_users_columns', function( $columns ){
    $columns2 = [];

    // We could do $columns['name2'] = 'Name'; - but we are replacing a column.
    foreach ( $columns as $key => $label ) {
        if ( 'name' === $key )
            $columns2['name2'] = 'Name';
        else
            $columns2[ $key ] = $label;
    }

    return $columns2;
} );

然后使用manage_users_custom_column过滤器生成显示在自定义列(name2)中的输出:

add_filter( 'manage_users_custom_column', function( $output, $column_name, $user_id ){
    if ( 'name2' === $column_name ) {
        $user_object = get_userdata( $user_id );
        $name = trim( $user_object->first_name . ' ' . $user_object->last_name );
        $output = $name ? $name . '<span> |</span>' : '&#8212;'; // the custom output
    }
    return $output;
}, 10, 3 );