¿Cómo mostrar los nombres de los usuarios de un grupo específico con un código corto?

4

Tengo en la base de datos una tabla con los valores user_id y group_id correspondientes, por lo que cada fila contiene el ID del usuario que es miembro de un grupo y el ID del grupo relacionado. La pregunta es : ¿Cómo mostrar los nombres de los usuarios de un grupo específico, más algunos metadatos, con un código abreviado, por ejemplo, [group_members group_id=1] ? Con la siguiente función, que intento adaptar sin éxito, puedo mostrar solo la ID de usuario o la ID de grupo.

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;
}
    
pregunta Iurie Malai 26.01.2013 - 21:37

1 respuesta

3

Debajo está mi propia respuesta a la pregunta. Apreciaré cualquier comentario constructivo.

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;
}
    
respondido por el Iurie Malai 27.01.2013 - 01:34

Lea otras preguntas en las etiquetas