it-swarm.com.de

Benutzernamen in der Benutzerliste ausblenden

Ich habe die Spalte "Benutzername" mit folgendem Code vor der Benutzerverwaltung verborgen:

function modify_user_columns($column) {
    $column = array(
        "cb" => "<input type=\"checkbox\" />",
        "username" => __('Username'),
        "name" => __('Name'),
        "email" => "E-mail",
        "birthdate" => "Narozeniny",
        "sleva_moto" => "Sleva moto"


    );
    return $column;
}
add_filter('manage_users_columns','modify_user_columns');

Das Problem ist, dass ich jetzt keine Details für einen Benutzer eingeben kann, da normalerweise auf die Benutzerdetails zugegriffen wird, wenn Sie auf den Benutzernamen klicken. Gibt es eine Möglichkeit, den Link zur Detailseite zur Spalte Name hinzuzufügen?

3
user1049961

Es gibt keine direkten Filter, mit denen wir den Inhalt der Spalte Name ändern können. Um das zu erhalten, was Sie möchten, sollten wir auch die Spalte "Name" entfernen und eine eigene Spalte "Name" erstellen. Daher wird die Funktion modify_user_columns so aussehen

function modify_user_columns($column) {
    $column = array(
        "cb" => "<input type=\"checkbox\" />",
        "wdm_name" => __('Name'),
        "email" => "E-mail",
        "birthdate" => "Narozeniny",
        "sleva_moto" => "Sleva moto"


    );
    return $column;
}

Jetzt haben wir eine Kontrolle darüber, was wir in der Spalte Name anzeigen können. Mit dem Filter manage_users_custom_column können wir Inhalte in diese Name-Spalte einfügen.

add_filter( 'manage_users_custom_column', 'wdm_display_name_with_edit_link', 10, 3 );

function wdm_display_name_with_edit_link($content, $column_name, $user_object_id){
    if ($column_name == 'wdm_name' && 
        current_user_can( 'edit_user',  $user_object_id) ) {

        //get info of user
        $user_object = get_userdata($user_object_id); 

        //generate edit link
        $edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user_object->ID ) ) ); 

        //Generate the complete Name with edit link
        $content = "<strong><a href=\"$edit_link\">$user_object->first_name $user_object->last_name</a></strong><br/>"; 
    } else {
        //If logged in user does not have rights 
        //to edit users, just show Name of users
        $content = "<strong>$user_object->first_name $user_object->last_name</strong><br />"; 
    }

    return $content;
}

Jetzt wird der Link "Namen bearbeiten" angezeigt. Hoffe das hilft. :)

1
WisdmLabs