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_queryacció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_sqlfunció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_queryacción de pantalones elegantesEsto es lo que estaba pensando cuando publiqué mi pregunta una vez que encontré la
pre_user_queryacción en laWP_User_Queryclase. Si pasapost_countcomo suorderbypará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_idparámetro es de Introducción a WP_User_ClassLo cual también es solo una muy buena referencia sobre
WP_User_Queryfuente
Desde 4.4, simplemente puede usar el parámetro `has_published_posts '.
Ejemplo:
has_published_postspuede 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_usernumpostsse deprecia, usecount_user_posts()