- Statut : non résolu
- Ce sujet contient 23 réponses, 2 participants et a été mis à jour pour la dernière fois par Timama, le il y a 9 années et 1 mois.
-
AuteurMessages
-
16 septembre 2015 à 10 h 08 min #554236
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 4.2.4
– Version de PHP/MySQL :
– Thème utilisé : le mien
– Extensions en place :
– Nom de l’hebergeur : Strato
– Adresse du site :Problème(s) rencontré(s) :
Bonjour,
Dans le back office, chez les « utilisateurs », j’ai différentes colonnes :
– Identifiant
– Nom
– Rôle
– Raisonsociale
– AdmissionSur la colonne « Identifiant », le tri se fait par défaut. Disons que c’est comme ça dès le départ.
J’aimerai que le tri soit également possible sur les colonnes « Nom » et « Raison sociale ».Pour Raison sociale (colonne que j’ai ajoutée), j’ai fait ça :
add_filter(‘manage_users_columns’, ‘pippin_add_user_raisonsociale’);
function pippin_add_user_raisonsociale($columns) {
$columns[‘raisonsociale’] = ‘Raisonsociale’;
return $columns;
}
add_action(‘manage_users_custom_column’, ‘pippin_show_user_raisonsociale’, 10, 3);
function pippin_show_user_raisonsociale($value, $column_name, $user_id) {
$user = get_userdata( $user_id );
$raisonsociale = $user->raisonsociale;
if ( ‘raisonsociale’ == $column_name )
return $raisonsociale;
return $value;
}
//nouvelle colonne triée
add_filter( ‘manage_users_sortable_columns’, ‘user_sortable_columns’ );
function user_sortable_columns( $columns ) {
$columns[‘raisonsociale’] = ‘Raisonsociale’;
return $columns;
}
add_filter( ‘request’, ‘bs_raisonsociale_column_orderby’ );
function bs_raisonsociale_column_orderby( $vars ) {
if ( isset( $vars[‘orderby’] ) && ‘Raisonsociale’ == $vars[‘orderby’] ) {
$vars = array_merge( $vars, array(
‘meta_key’ => ‘raisonsociale’,
‘orderby’ => ‘meta_value’
) );
}
return $vars;
}La colonne apparaît, les données dedans sont bonnes mais quand je clique sur la petite flèche de tri, et bien le tri ne se fait pas. Et en fait, cela se tri toujours en fonction de « identifiant »
Donc que cela soit la colonne NOM ou RAISON SOCIALE, quand je clique sur les flèches de tri, cela tri en fonction de « identifiant » et pas du non ou de la raison sociale….
Avez vous des conseil à me donner ?
Avez vous déjà rencontrer ce problème ?merci pour votre aide
17 septembre 2015 à 9 h 18 min #1021326faudrait voir les fonctions qui trient les autres colonnes
17 septembre 2015 à 9 h 23 min #1021327Merci Gueblo pour ta remarque, je me sentais seule LOL
Alors, pour la colonne identifiant (comme pour a colonne nom d’ailleurs), c’est une colonne déjà placée dans le back office, donc ce n’est pas moi qui ai programmé le tri.
Moi j’ai ajouté les colonnes
– Rôle
– Raisonsociale
– Admissionau back office….. et je fais le tri sur « admission » …
Et justement, e je me demande si il y a pas une « interférence » entre le tri qui est par défaut avec les colonnes déjà existante dans le back office et le tri que moi j’essai de faire….
D’ailleurs, je ne sais pas où se trouve le tri de la colonne identifiant tient…..
je vais regarder…….
:search:
17 septembre 2015 à 9 h 38 min #1021328Tu ne voudrais pas remplacer « Raisonsociale » par « raisonsociale », dans la dernière fonction, ici :
if ( isset( $vars[‘orderby’] ) && ‘Raisonsociale’ == $vars[‘orderby’] ) {
17 septembre 2015 à 9 h 46 min #1021329et sinon tu peux utiliser ce plugin :
17 septembre 2015 à 9 h 51 min #1021330ah oui ! ça aurait pu être une erreur comme ça effectivement LOL
J’ai remplacé « Raisonsociale » par « raisonsociale », mais le tri se fait toujours en fonction de l’identifiant quand je clique sur le petite flèche de tri de raisonsociale….. bizarre ….
Sinon, je préfère ne pas utiliser de plugin 😉
:search: encore
17 septembre 2015 à 10 h 03 min #1021331merci Gueblo
17 septembre 2015 à 10 h 06 min #1021332de rien 🙂
tiens moi au courant de tes avancées17 septembre 2015 à 11 h 16 min #1021333mouais bon, le tri de la colonne identifiant se fait dans
– class-wp-users-list-table.php
– class-wp-list-table.phpbon, en même temps je comprends pas trop leur méthode et puis c’est dans des fichiers sources donc je vais pas y toucher sinon, à chaque mise à jour, faut remodifier.
donc, bon, je cherche encore
:search:17 septembre 2015 à 11 h 56 min #1021334alors, je me suis dit : okay, je reprends les colonnes et je fais le tri des colonnes que je veux dans function, même le tri d’un colonne qui existe par defaut (son tri aussi).
donc j’ai écrit :
add_filter(‘manage_users_columns’, ‘pippin_add_user_raisonsociale’);
function pippin_add_user_raisonsociale($columns) {
$columns[‘username’] = ‘Identifiant’;
$columns[‘raisonsociale’] = ‘Raisonsociale’;
$columns[‘name’] = ‘Nom’;
$columns[‘particulier_admission’] = ‘Admission’;
return $columns;
}
add_action(‘manage_users_custom_column’, ‘pippin_show_user_raisonsociale’, 10, 3);
function pippin_show_user_raisonsociale($value, $column_name, $user_id) {
$user = get_userdata( $user_id );
$user_roles = $user->roles;
$user_role = array_shift($user_roles);
$username = $user->username;
$raisonsociale = $user->raisonsociale;
$name = $user->name;
if ( ‘username’ == $column_name )
{
return $username;
}
if ( ‘raisonsociale’ == $column_name )
{
return $raisonsociale;
}
if ( ‘name’ == $column_name )
{
return $name;
}
if ($user_role == ‘membres_particulier’ )
{
$admission = $user->particulier_admission;
}
if ($user_role == ‘membres_entreprise’ )
{
$admission = $user->admissionent;
}
if ( ‘particulier_admission’ == $column_name OR ‘admissionent’ == $column_name)
{
return $admission;
}
return $value;
}
//nouvelle colonne triée
add_filter( ‘manage_users_sortable_columns’, ‘user_sortable_columns’ );
function user_sortable_columns( $columns ) {
$columns[‘username’] = ‘Identifiant’;
$columns[‘raisonsociale’] = ‘Raisonsociale’;
$columns[‘name’] = ‘Nom’;
return $columns;
}
add_filter( ‘request’, ‘bs_username_column_orderby’ );
function bs_username_column_orderby( $vars ) {
if ( isset( $vars[‘orderby’] ) && ‘username’ == $vars[‘orderby’] ) {
$vars = array_merge( $vars, array(
‘meta_key’ => ‘username’,
‘orderby’ => ‘meta_value’,
‘order’ => ‘asc’
) );
}
return $vars;
}
add_filter( ‘request’, ‘bs_raisonsociale_column_orderby’ );
function bs_raisonsociale_column_orderby( $vars ) {
if ( isset( $vars[‘orderby’] ) && ‘raisonsociale’ == $vars[‘orderby’] ) {
$vars = array_merge( $vars, array(
‘meta_key’ => ‘raisonsociale’,
‘orderby’ => ‘meta_value’,
‘order’ => ‘asc’
) );
}
return $vars;
}
add_filter( ‘request’, ‘bs_name_column_orderby’ );
function bs_name_column_orderby( $vars ) {
if ( isset( $vars[‘orderby’] ) && ‘name’ == $vars[‘orderby’] ) {
$vars = array_merge( $vars, array(
‘meta_key’ => ‘name’,
‘orderby’ => ‘meta_value’,
‘order’ => ‘asc’
) );
}
return $vars;
}mais cela ne change rien ! pour chaque colonne où l’on peut trier, si on clique sur la flèche, c’est toujours en fonction de l’identifiant que ça se tri ….
je ne sais pas
:search:
17 septembre 2015 à 12 h 25 min #1021335c’est un thème de Pippin Williamson apparemment, donc déjà on sait que c’est bien conçu 🙂
c’est quel thème ?Tu peux me l’envoyer par zip si tu veux et je fais des tests de mon côté
17 septembre 2015 à 12 h 29 min #1021336non, c’est mon thème 😉
je connaissais pas Pippin Williamson LOL
17 septembre 2015 à 12 h 34 min #1021337après, j’ai surement repris un truc de lui ….. pour le tri que j’essai de faire fonctionner désespérément…. je farfouille dans les forum et blog….
Bref, peut être que le problème vient du fait que la raison sociale peut ne pas avoir de valeur?
et qu’il faut mettre une valeur par defaut quand c’est vide…..bon, je continue
mais j’avais trouvé ça où la personne parle bien du tri qui se fait au niveau de l’identifiant et pas dans sa colonne….
http://wpquestions.com/question/showChrono/id/8170mais bon, j’ai testé des trucs de ce forum mais toujours pas trouvé
:search:
17 septembre 2015 à 12 h 36 min #1021338ah ok, mais tu utilises une fonction de Pippin pourtant…
bref… je pensais que les classes dont tu parlais étaient dans un theme mais en fait ce sont celles propres à WP
je te déconseille de les modifier 🙂donc reprenons… la colonne « Raisonsociale » s’affiche
elle est bien remplie avec le contenu du champ de chaque user ?17 septembre 2015 à 12 h 40 min #1021339ah oui bien sûr ! je ne touche pas à ce qui est wp… moi, je met dans function.php (pour la creation de custom colonnes qui peuvent être triées…)
sinon, OUI : dans la colonne « Raisonsociale » , tout est bien rempli pour chaque user
Je me demande toujours si c’est pas parce que parfois c’est vide… ou alors qu’il faut utiliser query_posts pour les users……
hummmm
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.