web-dev-qa-db-fra.com

fonction déclenchée par le filtre "manage_users_custom_column" ne fonctionne pas

J'essaie d'ajouter une colonne personnalisée un users.php mais elle reste vide.

J'ai ajouté avec succès une colonne à la page d'administration des utilisateurs avec ce code dans le fichier functions.php de mon thème:

function add_user_test_column( $columns ) {
    $columns['test1'] = 'Test';
    return $columns;
} 
add_filter( 'manage_users_columns', 'add_user_test_column' );

J'ai essayé d'ajouter quelque chose à la colonne avec ce code mais la colonne reste vide:

function add_test_column_data($v = '', $column_name, $user_id ) {
    if( 'test1' == $column_name ) {
        return 'test'.$column_name.$user_id;
    }
}
add_filter( 'manage_users_custom_column', 'add_test_column_data', 10,3);

Je peux voir que la fonction est activée parce que si je modifie le retour à un écho comme ceci:

function add_test_column_data($v = '', $column_name, $user_id ) {
    if( 'test1' == $column_name ) {
        echo 'test'.$column_name.$user_id;
    }
}

Je peux voir que "test test test test test test" apparaît en haut de la table des utilisateurs.
Comme vous pouvez le constater, les variables transmises à la fonction ne sont pas prises en compte. J'ai également essayé de réduire la priorité (3ème argument de la fonction add_filter) de 10 à 1, sans effet.

Mes questions sont donc les suivantes:
Pourquoi le retour de cette fonction ne fonctionne-t-il pas?
Pourquoi les variables passées dans la fonction ne sont-elles pas prises en compte?
Où devrais-je chercher pour résoudre ce problème?

Je devrais ajouter que ce n'est pas une installation de vanille. J'ai repris un site complexe sur wordpress 3.4.2 avec beaucoup d'extensions et plus de 100 000 utilisateurs. (et je n'ai jamais utilisé Wordpress auparavant ...).

Merci en avance pour vos suggestions.

Keith

3
Keith

J'ai le même problème sur WP 3.2.1.

Il y a eu un conflit de filtre car un plug-in (User Access Manager) appelle également le filtre manage_users_custom_column.

Je change de priorité et cela résout le problème:

add_filter( 'manage_users_custom_column', 'custom_user_column_value', 15, 3 );

J'espère que cela pourra aider :)

5
Céline Garel