O que eu gostaria de fazer é ter uma lista de usuários que contribuíram com pelo menos uma postagem.
Eu preciso mostrar o seguinte:
[Foto do usuário] | [Nome do usuário] | [Contagem de postagens do usuário]
por exemplo
[foto] Joe Bloggs (8)
Comecei e segui esta rota:
<?php
$blogusers = get_users( 'orderby=post_count' );
foreach ( $blogusers as $user ) {
echo '<li>' . esc_html( $user->display_name ) . '</li>';
}
?>
No entanto, isso parece apenas retornar todos os usuários registrados no blog, e não aqueles que contribuíram, então certamente não estou fazendo isso corretamente.
Eu sou novo no wordpress e PHP, então toda a ajuda seria apreciada.
posts
count
post-status
users
steakpi
fonte
fonte
Respostas:
Você precisa definir o
who
parâmetro emget_users
EDITAR
Parece que eu estava respondendo rapidamente. O código na sua pergunta e na minha resposta é o começo do que você deseja alcançar.
Não tenho tempo para codificar agora, assistir ao rugby, mas aqui está o código completo usado nos vinte e quatorze para exibir autores e sua contagem de postagens. Espero que isto ajude
Basta chamá-lo em seus arquivos de modelo como
fonte
count_many_users_posts()
A função deve ser usada para eficiência, ao contar para um conjunto de vários usuários.Não há nenhuma maneira padrão no WordPress para fazer esta tarefa, como Pieter Goosen apontou, existe o argumento
who
deget_users()
que os usuários de retornos que pode postar, não os usuários que têm publicados.No entanto, você pode
'pre_user_query'
adicionar umaJOIN
cláusula SQL para obter apenas usuários que tenham pelo menos uma postagem.Para ser honesto, quando você consulta os usuários ordenando-os por contagem post, a junção é já criado por WordPress, mas usando um
OUTER LEFT JOIN
, por isso mesmo os usuários sem as mensagens são devolvidas, então a única coisa que você precisa é para substituir oOUTER LEFT JOIN
a umINNER JOIN
fonte
Desde a versão
4.3.0
, agora você pode especificar o parâmetrohas_published_posts
para aget_users();
chamada de função.Exemplo
Recursos
fonte