Lo que me gustaría hacer es tener una lista de usuarios que han contribuido al menos con una publicación.
Necesito mostrar lo siguiente:
[Foto de usuario] | [Nombre de usuario] | [Recuento de publicaciones del usuario]
p.ej
[foto] Joe Bloggs (8)
Empecé y seguí esta ruta:
<?php
$blogusers = get_users( 'orderby=post_count' );
foreach ( $blogusers as $user ) {
echo '<li>' . esc_html( $user->display_name ) . '</li>';
}
?>
Sin embargo, esto parece devolver a todos los usuarios registrados en el blog en lugar de aquellos que han contribuido, por lo que ciertamente no lo estoy haciendo correctamente.
Soy nuevo en WordPress y PHP, por lo que agradecería toda ayuda.
posts
count
post-status
users
steakpi
fuente
fuente
Respuestas:
Necesita configurar el
who
parámetro enget_users
EDITAR
Parece que estaba respondiendo rápidamente. El código en su pregunta y en mi respuesta es el comienzo de lo que desea lograr.
No tengo tiempo para codificar ahora, para ver rugby, pero aquí está el código completo utilizado en los catorce catorce para mostrar a los autores y su recuento de publicaciones. Espero que esto ayude
Simplemente llámelo en sus archivos de plantilla como
fuente
count_many_users_posts()
La función debe usarse para la eficiencia, cuando se cuenta para un conjunto de usuarios múltiples.No hay una forma predeterminada en WordPress para hacer esta tarea, como señaló Pieter Goosen , existe el argumento
who
paraget_users()
que devuelva los usuarios que pueden publicar, no los usuarios que han publicado.Sin embargo, puede usar
'pre_user_query'
para agregar unaJOIN
cláusula SQL para obtener solo usuarios que tengan al menos una publicación.Para ser honesto, cuando se consulta a los usuarios que les ordenan por número de correos, la unión se ya creado con WordPress, pero utilizando una
OUTER LEFT JOIN
, por lo que incluso se devuelven a los usuarios que no tienen mensajes, por lo que la única cosa que necesita es reemplazar elOUTER LEFT JOIN
de unaINNER JOIN
fuente
Desde la versión
4.3.0
, ahora puede especificar el parámetrohas_published_posts
para laget_users();
llamada a la función.Ejemplo
Recursos
fuente