Como exibir os nomes dos usuários de um grupo específico com um shortcode?

4

Eu tenho no banco de dados uma tabela com os valores user_id e group_id correspondentes, portanto, cada linha contém o ID do usuário que é membro de um grupo e o ID do grupo relacionado. A pergunta é : como exibir os nomes dos usuários de um grupo específico, além de alguns metadados, com um shortcode, por exemplo, [group_members group_id=1] ? Com a função abaixo, que eu tento me adaptar para isso sem sucesso, posso exibir apenas o ID do usuário ou o ID do 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;
}
    
por Iurie Malai 26.01.2013 / 21:37

1 resposta

3

Abaixo está minha própria resposta para a pergunta. Eu apreciarei qualquer comentário construtivo.

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