J'ai dans la base de données une table avec les valeurs user_id
et group_id
correspondantes, de sorte que chaque ligne contient l'ID de l'utilisateur membre d'un groupe et l'ID du groupe associé. La question est : Comment afficher les noms d'utilisateurs d'un groupe spécifique, ainsi que certaines métadonnées, avec un shortcode, par exemple [group_members group_id=1]
? Avec la fonction ci-dessous, que j'essaye d'adapter sans succès, je ne peux afficher que l'ID utilisateur ou l'ID du groupe.
add_shortcode( 'group_members', 'group_members_shortcode_handler' );
function group_members_shortcode_handler ( $atts, $content = null ) {
global $wpdb;
$querystr = "SELECT * FROM wp_groups_user_group";
$users = $wpdb->get_results($querystr, OBJECT);
foreach ($users as $user) {
$output .= $user->group_id;
}
return $output;
}
Ci-dessous ma propre réponse à la question. J'apprécierai tout commentaire constructif.
add_shortcode( 'group_members', 'group_members_shortcode_handler' );
function group_members_shortcode_handler ( $atts, $content = null ) {
global $wpdb;
$querystr = "SELECT * FROM wp_groups_user_group";
$users = $wpdb->get_results($querystr, OBJECT);
$output='';
foreach ($users as $user) {
if($user->group_id == $atts['group_id']){
$firstName = esc_html(get_user_meta($user->user_id, 'first_name', true));
$lastName = esc_html(get_user_meta($user->user_id, 'last_name', true));
$output .= '<li>' . $firstName . ' ' . $lastName . ' - ' . esc_html(get_user_meta($user->user_id, 'teaching_position', true)) . '</li>' . PHP_EOL;
}
}
return $output;
}