Total de puntos recibidos: 0
// Agregar shortcode para mostrar lista de usuarios y sus puntos, ordenados de mayor a menor function mostrar_lista_usuarios_y_puntos_ordenados() { // Obtener todos los usuarios registrados $usuarios = get_users(); // Crear un array para almacenar los puntos de los usuarios $usuarios_con_puntos = []; foreach ($usuarios as $usuario) { $usuario_id = $usuario->ID; $usuario_nombre = esc_html($usuario->user_login); // Calcular el total de puntos del usuario sumando los puntos de todas sus publicaciones $puntos_totales = 0; $publicaciones = get_posts([ 'author' => $usuario_id, 'post_type' => 'post', 'post_status' => 'publish', 'numberposts' => -1, // Obtener todas las publicaciones del usuario ]); foreach ($publicaciones as $publicacion) { $puntos_totales += intval(get_post_meta($publicacion->ID, 'puntos_totales', true)); } // Almacenar los datos del usuario y sus puntos $usuarios_con_puntos[] = [ 'nombre' => $usuario_nombre, 'puntos' => $puntos_totales, ]; } // Ordenar el array por puntos de mayor a menor usort($usuarios_con_puntos, function($a, $b) { return $b['puntos'] - $a['puntos']; }); // Crear el HTML para la lista $output = '
Usuario | '; $output .= 'Puntos Totales | '; $output .= '
---|---|
' . $usuario['nombre'] . ' | '; $output .= '' . $usuario['puntos'] . ' | '; $output .= '