J'utilise manage_users_columns pour afficher un champ personnalisé que je crée dans la base de données usermeta appelée société. Mon code est le suivant:
function mysite_column_company( $defaults ) {
$defaults['mysite-usercolumn-company'] = __('Company', 'user-column');
return $defaults;
}
function mysite_custom_column_company($value, $column_name, $id) {
if( $column_name == 'mysite-usercolumn-company' ) {
return get_usermeta($id, 'company');
}
}
add_action('manage_users_custom_column', 'mysite_custom_column_company', 15, 3);
add_filter('manage_users_columns', 'mysite_column_company', 15, 1);
J'aimerais pouvoir afficher deux autres champs personnalisés, mais je ne peux pas déterminer la fonction appropriée. La duplication de celle-ci ne fonctionne pas et je n'ai pas eu la chance d'ajouter de nouvelles fonctions dans celle-ci pour chaque colonne unique, principalement parce que je n'arrive pas à comprendre comment définir correctement la variable $ default. Aucune suggestion?
hummm ... tu veux dire quelque chose comme ça:
function mysite_column_company( $defaults ) {
$defaults['mysite-usercolumn-company'] = __('Company', 'user-column');
$defaults['mysite-usercolumn-otherfield1'] = __('Other field 1', 'user-column');
$defaults['mysite-usercolumn-otherfield2'] = __('Other field 2', 'user-column');
return $defaults;
}
function mysite_custom_column_company($value, $column_name, $id) {
if( $column_name == 'mysite-usercolumn-company' ) {
return get_the_author_meta( 'company', $id );
}
elseif( $column_name == 'mysite-usercolumn-otherfield1' ) {
return get_the_author_meta( 'otherfield1', $id );
}
elseif( $column_name == 'mysite-usercolumn-otherfield2' ) {
return get_the_author_meta( 'otherfield2', $id );
}
}
au fait, vous devriez utiliser get_the_author_meta () au lieu de get_usermeta () car il est obsolète.