Описание
Этот плагин отображает текущую погоду и дополнительный прогноз. Он может агрегировать данные от бесплатных глобальных поставщиков погоды (Open-Meteo, SMHI, Yr/MET Norway, FMI, Open-Weathermap и Weatherapi.com) и вычислять простой консенсус. Работает по всему миру с отличным покрытием в Европе и за ее пределами.
License
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Full license text is included in the LICENSE file in the plugin root.
Feedback & Bug Reports
Feedback and bug reports can be posted here: https://github.com/K3NT4/spelhubben-weather/issues
For common questions see the FAQ: https://github.com/K3NT4/spelhubben-weather/blob/main/Docs/FAQ.md
For Roadmap: https://github.com/users/K3NT4/projects/2
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Виджет погоды и блок с дополнительной картой и ежедневным прогнозом. Может объединять данные Open-Meteo, SMHI, Yr/MET, FMI, Open-Weathermap и Weatherapi.com.
Переводы
Плагин полностью переводимый и включает встроенные переводы для шведского (sv_SE) и норвежского Bokmål (nb_NO).
Как перевести плагин
Вариант 1: Внесите вклад в translate.wordpress.org (рекомендуется).
— Посетите translate.wordpress.org.
— Выберите свой язык и добавьте переводы через интерфейс браузера.
— Ваши переводы будут автоматически включены в будущие релизы
Вариант 2:Локальные файлы перевода\n
Если вам нужно добавить или изменить перевод локально:
-
Сгенерируйте или обновите POT-файл(шаблон перевода):\n
wp i18n make-pot . languages/spelhubben-weather.pot --slug=spelhubben-weather -
Создайте PO-файл для вашего языка (например,
spelhubben-weather-ru_RU.po):- Скопируйте файл
.potи переименуйте его в соответствии с Вашей локалью (например,de_DE). - Используйте такой инструмент перевода, как Poedit или текстовый редактор.
- Переведите все строки в файле PO
- Сохраните файл под именем
spelhubben-weather-de_DE.po.
- Скопируйте файл
-
Сгенерируйте MO-файл(скомпилированный бинарный формат):\n
msgfmt spelhubben-weather-de_DE.po -o spelhubben-weather-de_DE.mo -
Разместите файлы в плагине:
- Храните оба файла
.poи.moв/languages/. - Также сгенерируйте файл
.l10n.php(WordPress 6.0+):
wp i18n make-json languages/spelhubben-weather-de_DE.po --no-purge.
- Храните оба файла
-
Активируйте ваш перевод:
- Измените язык Вашего WordPress так, чтобы он соответствовал коду локали (Настройки Общие Язык сайта).
- Плагин автоматически загрузит переведенные строки
Translation file structure:
languages/
spelhubben-weather.pot (template for all translations)
spelhubben-weather-sv_SE.po (Swedish source text)
spelhubben-weather-sv_SE.mo (Swedish compiled)
spelhubben-weather-sv_SE.l10n.php
spelhubben-weather-nb_NO.po (Norwegian source text)
spelhubben-weather-nb_NO.mo (Norwegian compiled)
spelhubben-weather-nb_NO.l10n.php
«Что переводится:\n»
«-Все строки фронтенда (вывод шорткода, метки виджета, описания погоды, коды WMO)\n»
«-Настройки админки и метки интерфейса\n»
«-Строки JavaScript (развернуть/свернуть, статусные сообщения)\n»
«-Сообщения об ошибках и уведомления»
Рекомендации:\n
-Используйте контекстные подсказки в POT-файле (msgctxt), чтобы различать похожие фразы\n
-Тестируйте свой перевод в WordPress, чтобы убедиться, что форматирование и множественные числа работают правильно\n
-Проверьте, что переведённый интерфейс правильно выровнен для вашего языка (RTL или LTR)
Скриншоты

Примеры фронтенда: inline, compact, card, detailed, с опциональной картой. 
Frontend example: New look and wind direction 
Страница настроек: значения по умолчанию, провайдеры, кэш, единицы измерения и формат. 
Alerts page: active warnings and smart recommendations for extreme conditions. 
Shortcodes page: searchable examples, copy buttons, and admin live preview. 
Performance page: cache statistics, API usage and «Clear cache» action.
Блоки
Этот плагин предоставляет 1 блок.
- Spelhubben Weather Current weather and optional daily forecast with map, subtle animations, and multiple layouts.
Установка
- Загрузите/активируйте плагин.
- Перейдите в Настройки Spelhubben Weather и установите значения по умолчанию (место, отображаемые поля, макет, провайдеры, время кэширования, единицы измерения/формат).
- Добавьте погоду на ваш сайт любым из этих способов:
Блок (Гутенберг)
- Редактируйте страницу/запись нажмите Добавить блок найдите “Spelhubben Weather”.
- Опционально: переопределите значения по умолчанию на боковой панели блока (место/lat,lon, макет, карта, прогноз).
Шорткод
- Вставьте
[spelhubben_weather]в любое место, где поддерживаются шорткоды. - Примеры:
- Базовый:
[spelhubben_weather] - Компактный с картой и анимацией:
[spelhubben_weather place="Gothenburg" layout="compact" map="1" animate="1"] - Встроенный, без карты:
[spelhubben_weather lat="57.7089" lon="11.9746" layout="inline" map="0" show="temp,icon"] - Детальный + ежедневный прогноз (5 дней) + смесь поставщиков:
[spelhubben_weather place="Umeå" layout="detailed" forecast="daily" days="5" providers="smhi,yr,openmeteo,fmi"] - With wind direction:
[spelhubben_weather place="Stockholm" show="temp,wind,wind_dir,icon" layout="compact" animate="1"]
- Базовый:
Классический виджет
- Перейдите в Внешний вид Виджеты добавьте Spelhubben Weather.
- Настройте параметры для каждого виджета (заголовок, место или lat/lon, поля, макет, карта, прогноз, дни, CSS-класс).
Часто задаваемые вопросы
-
Откуда берутся данные?
-
Из публичных API, таких как Open-Meteo, SMHI, Yr/MET Norway и FMI (Финский метеорологический институт). Вы выбираете поставщиков в разделе Настройки Spelhubben Weather или для каждого блока/шорткода/виджета через атрибут
providers. -
Нужен ли API-ключ?
-
Нет. Для Open-Meteo, SMHI и FMI ключи не требуются. Для Yr/MET Norway рекомендуется указать контактную информацию (email/URL) в Настройки Spelhubben Weather Yr contact/UA, чтобы ваш User-Agent был корректным.
-
Блок, шорткод или виджет — в чём разница?
-
Все три отображают одинаковый интерфейс. Используйте блок в редакторе блоков, шорткод в классических областях контента и виджет в боковых панелях (Внешний вид Виджеты). Каждый позволяет переопределить глобальные настройки по умолчанию.
-
Как работают место и координаты?
-
Tide (experimental)
-
If you’re testing tide support in version 1.9.7:
- Enabling: Turn on
Tidesin Settings Spelhubben Weather and select a provider (WorldTides, NOAA or Custom endpoint). WorldTides typically requires an API key. - Shortcode: Use
extras="tides"ortides="1"to show tide events, e.g.[spelhubben_weather place="Gothenburg" extras="tides"]. - Providers: WorldTides (global, commercial), NOAA Tides & Currents (US only), or supply a custom endpoint that returns JSON with
events/extremes/dataarrays (items should includetime, and optionallytypeandheight). - Troubleshooting: Use
tests/tide_test.phpto validate provider responses and caching. Ensure provider settings and API key are correct; tide results are cached according to the configured TTL.
Если указаны
latиlon, они имеют приоритет. В противном случае плагин географически кодирует строкуplace(например,place="Umeå"). Установите глобальное местоположение по умолчанию в настройках. Ресурсы rontend зарегистрированы. - Enabling: Turn on
-
Какие поля я могу показывать/скрывать?
-
Use
show="temp,wind,icon"(comma separated). Defaults are set in settings. Addwind_dirto show wind direction arrow and label. -
Как работают макеты?
-
Выберите
layout="inline|compact|card|detailed". «Detailed» поддерживает строку прогноза на несколько дней. -
Можно ли увидеть данные отдельных провайдеров (для сравнения)?
-
Да!Используйте
comparison=\"1\", чтобы показать данные всех включённых провайдеров рядом. Полезно для отладки или сравнения того, какие провайдеры доступны в вашем местоположении.\n
Пример:[spelhubben_weather place=\"Стокгольм\" comparison=\"1\" providers=\"openmeteo,smhi,yr,fmi,openweathermap,weatherapi\"] -
Какие темы иконок доступны?
-
The plugin offers multiple themes: Classic (traditional), Modern Flat (clean, minimalist), Modern Gradient (contemporary with subtle gradients), Modern 2026 (duotone/stroke modern style), and Modern 3D (subtle gradients + drop-shadows). Choose in Settings Spelhubben Weather Icon style. All themes include icons for sun, partly-cloudy (including alternate), cloud, fog, rain, sleet, snow, storm/thunder, and hail where applicable.
-
Как включить карту и установить её размер?
-
map=»1″ показывает карту Leaflet (OpenStreetMap). Управляйте высотой с помощью
map_height="240"(пикселей). Глобальные значения по умолчанию задаются в настройках. -
Как включить анимацию?
-
animate=»1″ adds subtle UI animation. Global default is in settings. The renderer also accepts
true,yes, oronas truthy values for convenience. -
Как получить суточный прогноз?
-
Установите
forecast="daily"иdays="3–10". Пример:forecast="daily" days="5". -
How do i use Moon phase?
-
Use the new
phaseandilluminationfields to show moon information. Example shortcode:[spelhubben_weather show="temp,icon,phase,illumination"]— available in Block inspector and Widget options as well. -
Могу ли я смешивать провайдеры и получать согласованные данные?
-
Да. Установите
providers="smhi,yr,openmeteo,fmi"(порядок не имеет значения). Плагин вычисляет простой консенсус по доступным поставщикам для отображаемых полей. -
Единицы измерения и формат?
-
Выберите пресет с помощью
units="metric|metric_kmh|imperial". Вы можете переопределить отдельные части черезtemp_unit="C|F",wind_unit="ms|kmh|mph",precip_unit="mm|in"иdate_formatдля меток прогноза. У всех есть глобальные значения по умолчанию в настройках (раздел Единицы измерения и формат). -
Кэширование — как долго хранятся данные?
-
Responses are cached with WordPress transients. Change TTL (minutes) in settings. Clear via the Clear cache button on the Performance page (Settings Performance) or by changing attributes (which creates a new cache key).
-
Работает ли без JavaScript?
-
Да, рендеринг происходит на стороне сервера. Для карты (Leaflet) требуется JavaScript.
-
Переводы?
-
Плагин полностью переводим. Включенные переводы: шведский (sv_SE), норвежский (nb_NO). Строки также доступны на translate.wordpress.org. Отправьте
.pot/.po/.moв/languages. -
GDPR / конфиденциальность?
-
Плагин сам по себе не устанавливает cookie. Если вы включаете карту, тайлы Leaflet/OpenStreetMap запрашиваются на стороне клиента. При необходимости укажите OSM в вашем уведомлении о конфиденциальности.
-
Советы по устранению неполадок
-
- Ничего не отображается: проверьте, что в настройках выбран хотя бы один провайдер.
- Неверное местоположение: укажите точные
lat/lonили более конкретноеplace(например, «Uddevalla, SE»). - Карта не видна: убедитесь, что установлен
map="1"и что ваша тема/контейнер достаточно широкий/высокий; увеличьтеmap_height. - Ограничение частоты запросов: уменьшите количество обновлений или увеличьте TTL кэша.
Отзывы
Нет отзывов об этом плагине.
Участники и разработчики
«Spelhubben Weather» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«Spelhubben Weather» переведён на 2 языка. Благодарим переводчиков за их работу.
Перевести «Spelhubben Weather» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
2.0.3
- Fixed: Added default
unitsandyr_contactoptions to remove undefined index notices on new installs. - Fixed: Widget now initializes options before render so
wind_unitfallback is safe and notice-free. - Fixed: Admin attribution checker now uses the localized AJAX nonce (no more
nonce is not definederror). - Fixed: Rebuilt
assets/map.min.jsfrom the source to eliminate the stray syntax error and keep parity withmap.js.
2.0.2
- Urgent Fix: Ensure
assets/vendoris included in distribution packages (adjusted.distignorerules). This prevents missing Leaflet vendor files after packaging/deploy. - Fixed: Plugin version constant and admin asset versioning made consistent with the release.
- Documentation: Updated packaging notes and deploy recommendations.
2.0.1
- Fixed: Minor asset/enqueue edge-case causing Leaflet/map to fail loading on some paginated or special views where
$postis not available. - Fixed: Plugin version constant and admin asset versioning updated to reflect release
2.0.1. - Improved: Documentation updates and metadata cleaned up for the new release.
Features
— Шорткод [spelhubben_weather], Gutenberg block, and classic widget
— 6 Weather Providers: Open-Meteo, SMHI, Yr (MET Norway), FMI, Open-Weathermap, Weatherapi.com — enable any combination
— Icon Themes: Classic, Modern Flat, Modern Gradient, Modern 2026, Modern 3D (selectable in admin settings)
— Multiple Layouts: inline, compact, card, detailed
— Daily Forecast: 3–10 days customizable
— Provider Comparison: Side-by-side data from all enabled providers
— Leaflet Map: OpenStreetMap tiles with proper attribution (ODbL)
— Wind direction display: Rotated arrow with cardinal labels (optional via show=wind_dir)
— Local Icons: SVG icons (no CDN dependency), responsive scaling
— Performance: 6-30x faster settings page, lazy-loaded plugin showcase, optimized caching
— Fully GDPR Compliant: No cookies, no tracking, no personal data collection
— Translation-Ready: English base strings, Swedish and Norwegian translations included
Not affiliated with Open-Meteo, SMHI, Yr/MET Norway, FMI, Leaflet, or OpenStreetMap. Names are used for descriptive purposes only. Map data © OpenStreetMap contributors (ODbL).= 2.0.0 =
* FIX: Leaflet map now loads correctly on paginated, archive and guest pages where the global $post may be unavailable. Asset loader now scans the main query for shortcodes/blocks and enqueues Leaflet assets accordingly.
* CHANGE: Bumped version to 2.0.0.
1.9.9
-
FIX: Leaflet/map is now displayed correctly even for guests and special pages where $post is not set (fallback to get_queried_object()).
-
= 1.9.8 =
- Fixed: Fixed an issue where the Leaflet map could fail to load on live/optimized sites due to script handle conflicts with themes or other plugins.
- Improved: Renamed Leaflet asset handles to unique, plugin-specific names to prevent collisions and ensure correct dependency resolution.
- Improved: Removed forced defer handling for Leaflet/map scripts to avoid broken load order when caching/optimization plugins are active.
- Improved: Improved map initialization logic to prevent infinite retry loops and reduce console spam when Leaflet isn’t available.
-
Improved: Kept Leaflet/map assets conditionally loaded only on pages where the widget/block/shortcode is actually rendered.
-
= 1.9.7 =
-
Experimental: Tide support added for testing — opt-in feature. Adds support for WorldTides (API key), NOAA (US-only), and a configurable custom endpoint. Shortcode support via
extras="tides"ortides="1". Admin visibility can be toggled while rolling out to selected users. Responses are cached; configure TTL in Settings. -
= 1.9.5 =
-
New: Moon phase support —
phase(name) andillumination(percent) available in renderer, shortcodes, block and widget. -
= 1.9.4 =
-
Fixed: Wind direction cardinal calculation and arrow rotation; ensured text-domain i18n call fixed for VC integration; asset sanitization workaround for wind arrow rotation (data-deg + frontend JS).
-
= 1.9.3 =
- New:
wind_unitoverride in Block inspector, Widget settings and Shortcodes Quick Builder. - Improved:
metric_kntpreset for metric display with knots. - Fixed: Wind direction arrow rotation corrected to match compass degrees.
- Fixed: Shortcode
wind_unitreliably overrides resolved units and renderer emitsdata-svv-wind-unitfor debugging. - Fixed: Alert threshold comparisons now converted into display units to avoid false alerts.
- Fixed: PHP parse error in admin page resolved.
- Changed: Plugin version bumped to 1.9.3; readme stable tag updated.
- = 1.9.2 =
- New: Shortcode/Block/Widget
themeattribute —theme="auto|light|dark"to force UI theme per instance (defaultauto). - New: Quick Builder theme selector in admin Shortcodes page; example shortcode added.
- Improved: Renderer emits
data-svv-themeandsvv-theme-<value>class for easier CSS targeting. - Improved: Frontend CSS and map styling — darker Leaflet tiles in dark theme and darker alert box styles for better contrast.
-
Changed: Admin JS updated to include
themewhen generating shortcodes; docs updated across readmes. -
= 1.9.0 =
- New: Weather Alerts system with smart recommendations for extreme conditions
- New: Storm Warning alert for wind speeds exceeding 24.5 m/s
- New: Settings Export & Import feature for easy configuration management
- New: Performance Dashboard to track API usage, cache efficiency, and response times
- New: Full Dark Mode support for all frontend and admin interfaces
- New: 3 Gutenberg Block Patterns (Compact, Detailed, Forecast)
- New: Alert toggles for Blocks, Widgets, and Shortcodes
- New: Wind direction display (
wind_dir) — rotated arrow + cardinal labels (optional viashow=wind_dir) - New: Shortcode Quick Builder in admin Shortcodes page with selectable options, one-click copy and live preview
- New: Rotating Tips panel on the Settings page with contextual admin tips (Shortcodes, Alerts, Performance)
- New: Compact action buttons in the Tips panel for quick access to Shortcodes, Alerts and Performance
- New: «Reset to defaults» button on the Settings page (nonce-protected) to restore plugin defaults
- Improved: Tips text is translation-ready, rotates more slowly for readability (15s), and uses
aria-livefor accessibility
- Improved:
animateattribute parsing is more tolerant (accepts1,true,yes,on) - Improved: Full English translation and i18n readiness (English is now the base language)
- Improved: Refined alert thresholds based on meteorological standards
1.8.6
- Fixed: Map not rendering in widgets due to missing Leaflet asset detection
- Fixed: Block name mismatch (
spelhubben/weatherspelhubben-weather/spelhubben-weather) preventing proper asset enqueuing - Improved: Enhanced Leaflet initialization with better timing and error handling in
map.js - Improved: Added widget detection in asset loading logic using
is_active_widget() - Improved: Added fallback height (
height: 240px;) to.svv-mapCSS class for better Leaflet container sizing - Improved: Better error reporting and retry logic in map initialization with Leaflet availability checks
1.8.5
- Performance: Conditional Leaflet asset loading — only loads when shortcode or Gutenberg block is present on the page.
- Fix: Added
.htaccessfiles to prevent WordPress rewrite rules from interfering with static assets. - Fix: Ensure correct MIME types for CSS and JS files to prevent browser strict MIME checking warnings.
- UX: Eliminates unnecessary 404 errors on pages without weather widget.
1.8.4
- Maintenance: Added centralized configuration constants file (
includes/constants.php) for improved code maintainability and reduced magic numbers. - Performance: Settings page now loads 6-30x faster with lazy-loaded WP.org plugin showcase via AJAX.
- Fix: Fixed memory leaks from uncleanup event listeners in admin interface with proper cleanup handlers.
- Fix: Fixed WMO weather code duplication—fog (codes 45, 48) now displays correctly instead of showing cloud icon.
- Fix: Fixed geocoding cache to include API language, ensuring proper locale-specific results for multi-language sites.
- Fix: Fixed widget null-safety with null-coalesce operators to prevent PHP Notices.
- Fix: Standardized API error handling with consistent response validation across all providers.
- Fix: Fixed syntax error in WP.org plugin showcase API call (missing closing parenthesis).
- Compliance: Verified full WordPress Consent API and GDPR compliance—no cookies, no tracking, no personal data collection.
- Code Quality: Debounce timeout optimized (400ms 600ms) reducing AJAX traffic by 50% during live preview.
- Documentation: Comprehensive audit and testing guides included for developers.
1.8.3
- Version bump for production release.
1.8.2
- Fix: WordPress naming convention compliance – all global functions and variables now use proper
sv_vader_prefix. - Fix: Corrected asset paths for Leaflet library (vendor directory structure).
- Tech: Code review and standards compliance (no breaking changes).
- Tested up to: WordPress 6.9
1.8.1
- New: 3 selectable icon themes: Classic, Modern Flat, and Modern Gradient (set in Settings Icon style).
- Performance: Optimized icon rendering with static variable caching for icon style preference (reduces repeated
sv_vader_get_options()calls). - Tech: Added private helper method
build_icon_url()to centralize icon URL logic and improve maintainability. - All icon themes include: sun, partly-cloudy, cloud, fog, rain, sleet, snow, thunderstorm (8 distinct weather conditions per theme).
- Updated README and readme.txt with icon theme documentation and admin settings guide.
1.8.0
- BREAKING CHANGE: Removed legacy
[sv_vader …]shortcode. Use[spelhubben_weather …]exclusively. - New Providers: Added Open-Weathermap and Weatherapi.com for better global coverage (6 total providers).
- New Feature:
comparison="1"attribute shows all providers’ data side-by-side for easy comparison and debugging. - Performance: Fixed memory leak in map.js (persistent MutationObserver, proper ResizeObserver cleanup).
- Performance: Added 7-day transient caching for geocoding lookups to reduce external API calls.
- Performance: CSS containment (
contain: layout style paint) optimizes rendering on pages with multiple weather cards. - Caching: Improved debounce function to prevent race conditions during window resizes.
- Security: Fixed unsafe XML parsing in FMI provider (now uses
LIBXML_NOCDATAflag with proper error handling). - Feature: New plugin showcase on settings page displaying other Spelhubben plugins (grid layout, auto-fetches from WordPress.org).
- UX: Plugin showcase auto-excludes Spelhubben Weather itself to avoid redundancy.
- Протестировано до: WordPress 6.8+
1.7.5
- Протестировано до: 6.9
- Новое: FMI (Финский метеорологический институт) в качестве бесплатного опционального поставщика (t2m, ws_10min, r_1h, n_man через WFS). Включение/выключение в Настройки Поставщики и через
providers="…"в блоке/шорткоде/виджете. - Шорткоды/Блоки:
providersтеперь принимает значениеfmi. - Документация: Обновлены примеры и FAQ с включением FMI.
1.7.0
- Новое: страница админки Шорткоды с доступными для поиска примерами, копированием в один клик и копированием всех.
- Новое: Живой предпросмотр внутри админки WordPress (песочница iframe), который отображает шорткоды и загружает фронтенд-ресурсы (Leaflet, CSS/JS виджета).
- Новое: настройки Единицы измерения и формат (пресет + переопределения: единицы температуры/ветра/осадков,
date_format). - Новое: кнопка Очистить кэш (transients) на странице настроек.
- Новое: Включены переводы: шведский (sv_SE), норвежский (nb_NO), английский (en_US).
- UX: унифицированный светлый дизайн карточек на всех страницах админки.
- Технологии: надёжная очередь скриптов/стилей в админке с обходом кэша через
filemtime. - i18n: Все строки админки локализованы (включая JS: развернуть/свернуть, статусы).
- Документация: устаревший шорткод помечен как устаревший – скоро будет удалён.
1.6.2
- Незначительные исправления и обновления readme.
1.6.1
- Version bump for WordPress.org sync. No functional changes.
