¿Cómo puedo lograr eso? Encontré count_user_posts y get_users , pero ¿cómo los fusionaría en el resultado deseado? ¿Realmente tengo que usar una consulta WP DB?
¿Cómo puedo lograr eso? Encontré count_user_posts y get_users , pero ¿cómo los fusionaría en el resultado deseado? ¿Realmente tengo que usar una consulta WP DB?
Por ahora, el soporte de post_type
no está disponible actualmente para count_user_posts()
,
ponga el código a continuación en el archivo functions.php del tema.
function count_user_posts_by_type( $userid, $post_type = 'post' ) {
global $wpdb;
$where = get_posts_by_author_sql( $post_type, true, $userid );
$count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
return apply_filters( 'get_usernumposts', $count, $userid );
}
Ahora esta función tomaría user id
y post_type
como parámetro post_type='post'
siendo el valor predeterminado y obtiene el recuento de publicaciones para ese usuario para el post_type correspondiente
Puede verificarlo haciendo eco en el siguiente punto, donde debe verificar el conteo de publicaciones por parte del usuario.
$user_posts = count_user_posts_by_type( 1, 'page' );
echo $user_posts; // This would return the post count for user id 1 and post_type page.
Puedes hacer lo mismo para el tipo de publicación personalizada. Ahora necesita obtener los ID de usuario y pasar a través de esta función y mostrar el nombre de los autores que tienen 1 o más publicaciones. o
Puedes agregar el siguiente código en el que deseas mostrar la lista de usuarios con una o más publicaciones
$blogusers = get_users();
foreach ( $blogusers as $user ) {
if ( count_user_posts_by_type( $user->ID, 'post') ) {
echo $user->user_nicename . '</br>';
}
}
El código anterior enumera a todos los usuarios con una o más publicaciones publicadas de post_type
post
.
Lea otras preguntas en las etiquetas get-posts custom-post-types list-authors