Veo que es posible ordenar una consulta de usuario por el número de publicaciones que tiene cada usuario, pero ¿es posible excluir del resultado a los usuarios con cero publicaciones? En la clase Wp_User_Query hay una pre_user_query
acción, pero las cadenas de consulta son un gran punto débil, por lo que no estoy seguro de qué tipo de acción de filtro me gustaría utilizar aquí.
wp-user-query
helgatheviking
fuente
fuente
post_count
== 0?get_posts_by_author_sql
función que genera el SQL para laget_authors()
consulta. Los usuarios deben tener una publicación publicada o privada para ser incluidos en los resultados. #facepalmget_authors()
resultado como transitorio ... entonces simplemente puedo omitir el autor actual sin necesidad de hacer una consulta cada vez.Respuestas:
Bueno, he encontrado 2 soluciones.
Solución 1 - foreach loop y verificar cada usuario
Este se basa en la solución de @ GhostToast, pero con funciones actualizadas de WordPress
Solución 2 -
pre_user_query
acción de pantalones elegantesEsto es lo que estaba pensando cuando publiqué mi pregunta una vez que encontré la
pre_user_query
acción en laWP_User_Query
clase. Si pasapost_count
como suorderby
parámetro, algunas consultas SQL sofisticadas que nunca habría descubierto por mi cuenta suceden las tablas adecuadas. Entonces, lo que hice fue copiar esa declaración de unión y agregarla a la mía. Esto sería mejor si pudiera verificar su presencia primero antes de agregarlo ... tal vez usaré una coincidencia de cadena en el futuro. Pero por ahora, dado que soy yo quien configura la consulta, sé que no está allí y todavía no me preocuparé. Entonces el código resultó así:y luego usarlo
La idea para un
query_id
parámetro es de Introducción a WP_User_ClassLo cual también es solo una muy buena referencia sobre
WP_User_Query
fuente
Desde 4.4, simplemente puede usar el parámetro `has_published_posts '.
Ejemplo:
has_published_posts
puede ser verdadero / falso (o nulo) o una matriz de tipos de publicación (como en este ejemplo).Nota: Estoy usando transitorios aquí porque esta consulta específica puede ser bastante pesada dependiendo del sistema, por lo que tiene sentido almacenarla para usos futuros.
fuente
Presentando como respuesta para el cierre:
fuente
get_users_with_role()
¿No es una función de WordPress o he estado mirando mi computadora demasiado tiempo?"get_users_with_role": 0 matches across 0 files
. Tambiénget_usernumposts
se deprecia, usecount_user_posts()