Obtenga todos los autores con al menos una publicación de 'tipo de publicación personalizada'

4

¿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?

    
pregunta user9 29.10.2013 - 11:37

1 respuesta

2

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 .

    
respondido por el Maruti Mohanty 29.10.2013 - 12:16

Lea otras preguntas en las etiquetas