All Usersの下にスーパー管理者/マルチサイトネットワークページのフィールド/列を追加します。各ユーザーの下の列として「company」という列を表示します。これを可能にする方法これを各サイトの「All Users」の下に表示することはできますが、Network Adminページには表示できません。
ありがとうございました!
//Add column to Network Admin User panel list page
function add_user_columns( $defaults ) {
$defaults['company'] = __('Company', 'user-column');
return $defaults;
}
add_filter('wpmu_users_columns', 'add_user_columns', 15, 1);
//Print the user data in the new column
function add_custom_user_columns($value, $column_name, $id) {
if( $column_name == 'company' ) {
return get_the_author_meta( 'company', $id );
}
}
add_action('wpmu_users_custom_column', 'add_custom_user_columns', 15, 3);
この機能は、通常のユーザーリスト(ネットワークではない)で機能する機能から直接取得されます。 manage_users_columnsをwpmu_users_columnsに、manage_users_custom_columnをwpmu_users_custom_columnに置き換えました。ただし、ネットワークユーザーリストでは機能しません。
これで、ネットワークユーザーテーブルに列を追加し、選択した列の前に列を追加し、それにデータを追加する必要があります。
add_filter( 'wpmu_users_columns', 'my_awesome_new_column' );
add_action( 'manage_users_custom_column', 'my_awesome_column_data', 10, 3 );
// Creates a new column in the network users table and puts it before a chosen column
function my_awesome_new_column( $columns ) {
return my_awesome_add_element_to_array( $columns, 'my-awesome-column', 'Awesome', 'registered' );
}
// Adds data to our new column
function my_awesome_column_data( $value, $column_name, $user_id ) {
// If this our column, we return our data
if ( 'my-awesome-column' == $column_name ) {
return 'Awesome user ID ' . intval( $user_id );
}
// If this is not any of our custom columns we just return the normal data
return $value;
}
// Adds a new element in an array on the exact place we want (if possible).
function my_awesome_add_element_to_array( $original_array, $add_element_key, $add_element_value, $add_before_key ) {
// This variable shows if we were able to add the element where we wanted
$added = 0;
// This will be the new array, it will include our element placed where we want
$new_array = array();
// We go through all the current elements and we add our new element on the place we want
foreach( $original_array as $key => $value ) {
// We put the element before the key we want
if ( $key == $add_before_key ) {
$new_array[ $add_element_key ] = $add_element_value;
// We were able to add the element where we wanted so no need to add it again later
$added = 1;
}
// All the normal elements remain and are added to the new array we made
$new_array[ $key ] = $value;
}
// If we failed to add the element earlier (because the key we tried to add it in front of is gone) we add it now to the end
if ( 0 == $added ) {
$new_array[ $add_element_key ] = $add_element_value;
}
// We return the new array we made
return $new_array;
}