Customizando a query para buscar todos os dados do usuário no WordPress

O WordPress conta com ferramentas muito boas para administrar os usuários e permite que você estenda o formulário infinitamente. Entretanto, quando falamos em resgatar estes dados fora do WordPress, para exportar para uma base excel por exemplo, fica complicado pois como as informações não ficam em colunas nas tabelas, ou você cria uma query que vai te retornar linha a linha as meta keys duplicando todos os dados da tabela users ou utiliza um código externo redundante em PHP que vai sobrecarregar o seu servidor e obrigá-lo a rever o timeout da aplicação ou ainda pior, terá que gerar um plugin só para utilizar as funções do WordPress e te retornar estes dados e que também pode vir a dar problema de timeout.

Então qual a solução mais rápida? Extrair estes dados diretamente da sua base MySQL, utilizando o concatenamento de tabelas por meio da função JOIN do SQL.

SELECT
  u1.id,
  u1.user_email,
  u1.user_pass,
  u1.user_email,

  m1.meta_value AS firstname,
  m2.meta_value AS lastname,
  m3.meta_value AS birthday
  [...]
FROM 
  wp_users u1 
JOIN 
  wp_usermeta m1 ON (m1.user_id = u1.id AND m1.meta_key = 'first_name') 
JOIN 
  wp_usermeta m2 ON (m2.user_id = u1.id AND m2.meta_key = 'last_name') 
JOIN 
  wp_usermeta m3 ON (m3.user_id = u1.id AND m3.meta_key = 'birthday')
  [...]
WHERE
  [...]

Muito mais simples, não?