web-dev-qa-db-fra.com

Comment afficher plusieurs colonnes personnalisées dans le fichier users.php de wp-admin?

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?

1
John Chandler

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.

2
Sébastien Méric