function mostrar_clima_shortcode($atts) { // Lista de ciudades $ciudades = [ 'Toluca' => [19.2826, -99.6571], 'CDMX' => [19.4326, -99.1332], 'Guadalajara' => [20.6597, -103.3496], 'Monterrey' => [25.6866, -100.3161], 'Mérida' => [20.9674, -89.5926], 'Cancún' => [21.1619, -86.8515], 'Tijuana' => [32.5149, -117.0382], ]; // 🔁 ROTACIÓN POR TIEMPO (cambia cada X segundos) $intervalo = 10; // segundos por ciudad $keys = array_keys($ciudades); $index = floor(time() / $intervalo) % count($keys); $ciudad = $keys[$index]; $latitud = $ciudades[$ciudad][0]; $longitud = $ciudades[$ciudad][1]; // API Open-Meteo $url = "https://api.open-meteo.com/v1/forecast?latitude=$latitud&longitude=$longitud¤t_weather=true&timezone=America/Mexico_City"; $response = wp_remote_get($url); if (is_wp_error($response)) { return 'No se pudo obtener el clima en este momento.'; } $data = json_decode(wp_remote_retrieve_body($response)); if (!isset($data->current_weather)) { return 'Datos de clima no disponibles.'; } $temp = $data->current_weather->temperature; $icono = $data->current_weather->weathercode; // Emojis switch ($icono) { case 0: $emoji = '☀️'; break; case 1: $emoji = '🌤️'; break; case 2: $emoji = '⛅'; break; case 3: $emoji = '☁️'; break; case 51: case 53: case 55: case 61: case 63: case 65: $emoji = '🌧️'; break; case 95: $emoji = '⛈️'; break; case 96: case 99: $emoji = '🌩️'; break; default: $emoji = '🌈'; break; } // Output $output = '
'; return $output; } add_shortcode('mostrar_clima', 'mostrar_clima_shortcode');