次のコードを使用して、ユーザー管理からユーザー名列を非表示にしました。
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');
問題は、ユーザー名をクリックすると通常ユーザーの詳細がアクセスされるため、現在どのユーザーの詳細も入力できないことです。詳細ページへのリンクをName
列に追加する方法はありますか?
Name列の内容を変更するための直接フィルタはありません。それで、あなたが欲しいものを手に入れるために、 'Name'カラムも削除して、そして我々自身のNameカラムを作るべきです。したがって、modify_user_columns
関数は次のようになります。
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;
}
これで、[名前]列に表示できる内容を制御できます。フィルタmanage_users_custom_column
を使用して、そのName列にコンテンツを追加できます。
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;
}
今すぐ編集リンクで名前が表示されます。お役に立てれば。 :)