WordPress plugin for parsing and displaying NOAA weather forecasts with automatic alert detection.
Features
- Automated NOAA Parsing: Downloads and parses weather forecasts hourly
- Alert Detection: Automatically extracts warnings, watches, and advisories
- Three Forecast Types:
- Standard Forecast (miz071.txt)
- Marine Forecast (lmz845.txt)
- Extended Forecast
- Smart Caching: Efficient file-based caching system
- Flexible Display: Multiple shortcodes with different formats
- Emoji Support: Visual indicators for weather conditions and alert severity
Installation
- Upload the plugin folder to
/wp-content/plugins/ - Activate the plugin through the ‘Plugins’ menu in WordPress
- The plugin will automatically create
/wp-content/wx/directory for cache files - Forecasts will be downloaded automatically every hour
Alert System
The plugin automatically detects and categorizes weather alerts:
Alert Types
WARNING (🔴 Severe)
- Highest severity
- Requires immediate action
- Examples: Gale Warning, Tornado Warning, Flood Warning
- Emoji indicators: 🌬️💨 (Gale), ⛈️ (Storm), 🌪️ (Tornado), ❄️ (Winter)
WATCH (🟠 High)
- Conditions are favorable for severe weather
- Be prepared to take action
- Examples: Tornado Watch, Flood Watch, Winter Storm Watch
- Emoji indicators: 👀⚠️ (Generic), ⛈️👀 (Storm), 🌪️👀 (Tornado)
ADVISORY (🟡 Moderate)
- Less severe but still important
- Examples: Small Craft Advisory, Wind Advisory, Fog Advisory
- Emoji indicators: ⛵⚠️ (Small Craft), 💨 (Wind), 🌫️ (Fog)
Shortcodes
Alert Shortcodes
Display weather alerts and warnings:
[weather_alerts] - Standard forecast alerts
[marine_alerts] - Marine forecast alerts (e.g., Gale Warnings)
[extended_alerts] - Extended forecast alerts
[all_weather_alerts] - All alerts from all forecast types
Format Options:
[marine_alerts format="banner"] - Large banner style (default)
[marine_alerts format="list"] - Compact list style
Individual Forecast Periods
Display a specific forecast period:
EARLY THIS MORNING ❄️
REST OF TONIGHT ❄️ 💨
EARLY THIS MORNING ❄️
[weather_verbose index="0"] - Standard forecast, first period
[weather_marine index="0"] - Marine forecast, first period
[weather_extended index="0"] - Extended forecast, first period
Index values:
0= First period (e.g., “REST OF TODAY”)1= Second period (e.g., “TONIGHT”)2= Third period, etc.
All Forecasts
Display all forecast periods:
EARLY THIS MORNING
❄️TODAY
❄️TONIGHT
❄️ 🌙⛅MONDAY
☀️MONDAY NIGHT
❄️ 🌙⛅TUESDAY
🌧️ ❄️ ☁️TUESDAY NIGHT
🌧️ ❄️WEDNESDAY
🌧️ ❄️WEDNESDAY NIGHT
🌧️ ❄️THURSDAY
🌧️ ❄️ ☁️THURSDAY NIGHT
🌧️ ❄️FRIDAY
🌧️ ❄️FRIDAY NIGHT
🌧️ ❄️SATURDAY
🌧️ ❄️ ☁️REST OF TONIGHT
❄️ 💨SUNDAY
❄️ 💨 🌊SUNDAY NIGHT
❄️ 🌙⛅ 💨 🌊MONDAY
☀️ 💨 🌊MONDAY NIGHT
❄️ ☁️ 🌬️💨 🌊TUESDAY
🌧️ ❄️ 🌬️💨 🌊WEDNESDAY
🌧️ ❄️ 🌬️💨 🌊THURSDAY
🌧️ ❄️ ☁️ 💨 🌊EARLY THIS MORNING
❄️TODAY
❄️TONIGHT
❄️ 🌙⛅MONDAY
☀️MONDAY NIGHT
❄️ 🌙⛅TUESDAY
🌧️ ❄️ ☁️TUESDAY NIGHT
🌧️ ❄️WEDNESDAY
🌧️ ❄️WEDNESDAY NIGHT
🌧️ ❄️THURSDAY
🌧️ ❄️ ☁️THURSDAY NIGHT
🌧️ ❄️FRIDAY
🌧️ ❄️FRIDAY NIGHT
🌧️ ❄️SATURDAY
🌧️ ❄️ ☁️[weather_verbose_all] - All standard forecasts
[weather_marine_all] - All marine forecasts
[weather_extended_all] - All extended forecasts
Format Options:
REST OF TONIGHT
❄️ 💨SUNDAY
❄️ 💨 🌊SUNDAY NIGHT
❄️ 🌙⛅ 💨 🌊MONDAY
☀️ 💨 🌊MONDAY NIGHT
❄️ ☁️ 🌬️💨 🌊TUESDAY
🌧️ ❄️ 🌬️💨 🌊WEDNESDAY
🌧️ ❄️ 🌬️💨 🌊THURSDAY
🌧️ ❄️ ☁️ 💨 🌊| Period | Forecast |
|---|---|
| REST OF TONIGHT ❄️ 💨 | East winds 10 to 15 knots. Snow. Waves around 1 foot. |
| SUNDAY ❄️ 💨 🌊 | East winds 10 to 20 knots backing north in the late morning and afternoon. Snow. Waves 1 to 2 feet building to 3 to 5 feet early in the afternoon. |
| SUNDAY NIGHT ❄️ 🌙⛅ 💨 🌊 | Northeast winds 10 to 20 knots veering east after midnight. Partly cloudy with a slight chance of snow. Waves 4 to 6 feet subsiding to 2 to 4 feet after midnight. |
| MONDAY ☀️ 💨 🌊 | East winds 10 to 20 knots veering southeast in the late morning and afternoon. Partly sunny. Waves 1 to 3 feet. |
| MONDAY NIGHT ❄️ ☁️ 🌬️💨 🌊 | South winds to 30 knots increasing to gales to 40 knots after midnight. Mostly cloudy with snow likely. Waves 2 to 4 feet building to 7 to 11 feet. |
| TUESDAY 🌧️ ❄️ 🌬️💨 🌊 | Southwest gales to 40 knots decreasing to 30 knots early in the afternoon. Snow likely and a chance of rain. Waves 8 to 12 feet. |
| WEDNESDAY 🌧️ ❄️ 🌬️💨 🌊 | West gales to 40 knots veering northwest gales to 35 knots in the late morning and afternoon. Rain with snow likely. Waves 10 to 14 feet. |
| THURSDAY 🌧️ ❄️ ☁️ 💨 🌊 | Northwest winds around 20 knots. Mostly cloudy with snow showers likely. Waves 6 to 9 feet. |
- Cards Format (default)
[weather_marine_all format="cards"]
- Grid layout with styled cards
- Best for visual appeal
- Each period in its own card
- Table Format
[weather_marine_all format="table"]
- Structured table layout
- Good for comparing periods
- Compact view
- Simple Format
[weather_marine_all format="simple"]
- Plain text with minimal styling
- Fastest to load
- Good for sidebar widgets
Example Usage
Display Marine Alerts and Today’s Forecast
<!-- Show any marine warnings prominently -->
<!– Show current marine conditions –> <h3>Current Marine Conditions</h3>
REST OF TONIGHT ❄️ 💨
Complete Weather Page
<!-- All active alerts -->
<div class="weather-alerts-section">
<h2>Active Weather Alerts</h2>
</div> <!– Standard forecast –> <div class=”standard-forecast”> <h2>Local Forecast</h2>
EARLY THIS MORNING
❄️TODAY
❄️TONIGHT
❄️ 🌙⛅MONDAY
☀️MONDAY NIGHT
❄️ 🌙⛅TUESDAY
🌧️ ❄️ ☁️TUESDAY NIGHT
🌧️ ❄️WEDNESDAY
🌧️ ❄️WEDNESDAY NIGHT
🌧️ ❄️THURSDAY
🌧️ ❄️ ☁️THURSDAY NIGHT
🌧️ ❄️FRIDAY
🌧️ ❄️FRIDAY NIGHT
🌧️ ❄️SATURDAY
🌧️ ❄️ ☁️</div> <!– Marine forecast –> <div class=”marine-forecast”> <h2>Marine Forecast</h2>
REST OF TONIGHT
❄️ 💨SUNDAY
❄️ 💨 🌊SUNDAY NIGHT
❄️ 🌙⛅ 💨 🌊MONDAY
☀️ 💨 🌊MONDAY NIGHT
❄️ ☁️ 🌬️💨 🌊TUESDAY
🌧️ ❄️ 🌬️💨 🌊WEDNESDAY
🌧️ ❄️ 🌬️💨 🌊THURSDAY
🌧️ ❄️ ☁️ 💨 🌊</div>
Sidebar Widget
<!-- Compact alert display -->
<!– Today’s weather only –>
EARLY THIS MORNING ❄️
Real-World Alert Examples
Gale Warning (Marine)
🌬️💨 WARNING: GALE WARNING IN EFFECT THROUGH LATE TONIGHT
Small Craft Advisory
⛵⚠️ ADVISORY: SMALL CRAFT ADVISORY IN EFFECT UNTIL 8 PM
Winter Storm Watch
❄️👀 WATCH: WINTER STORM WATCH FROM FRIDAY EVENING THROUGH SATURDAY
Styling
The plugin includes comprehensive CSS classes for customization:
Alert Styling
.weather-alert-banner– Banner format alerts.alert-severe– Red styling for warnings.alert-high– Orange styling for watches.alert-moderate– Yellow styling for advisories
Forecast Styling
.weather-card– Individual forecast cards.weather-table– Table format styling.weather-type-marine– Marine-specific colors.weather-type-extended– Extended forecast colors
Custom CSS Example
/* Make marine warnings more prominent */
.weather-type-marine .alert-severe {
border-left-width: 8px;
font-size: 1.2em;
}
/* Change card colors */
.weather-type-marine .weather-card-header {
background: linear-gradient(135deg, #005f73 0%, #0a9396 100%);
}
Data Files
The plugin creates these files in /wp-content/wx/:
Forecast Files
extracted_verbose.php– Parsed standard forecastsextracted_marine.php– Parsed marine forecastsextracted_extended.php– Parsed extended forecasts
Alert Files
alerts_verbose.php– Standard forecast alertsalerts_marine.php– Marine forecast alerts (warnings, advisories)alerts_extended.php– Extended forecast alerts
Raw Files
miz071.txt– Raw standard forecast from NOAAlmz845.txt– Raw marine forecast from NOAAextended.txt– Raw extended forecast from NOAA
Manual Updates
Use the admin page to manually trigger forecast updates:
- Go to Weather Verbose in WordPress admin
- Click Download & Parse Forecasts Now
- Check the status section to verify updates
Troubleshooting
Alerts Not Appearing
- Check if alerts exist: View the raw forecast files in
/wp-content/wx/ - Verify parsing: Check that
alerts_marine.phpcontains data - Manual update: Trigger a manual forecast download
- Check shortcode: Ensure using correct shortcode (e.g.,
notNo active alertsfor marine warnings)No active alerts
Example Alert Detection
The parser looks for lines like:
...GALE WARNING IN EFFECT THROUGH LATE TONIGHT...
...SMALL CRAFT ADVISORY UNTIL 8 PM EST...
...WINTER STORM WATCH FROM FRIDAY EVENING...
Cache Issues
If forecasts seem outdated:
- Delete files in
/wp-content/wx/ - Trigger manual update from admin page
- Check file timestamps in admin page
Technical Details
Update Schedule
- Automatic: Every hour via WordPress cron
- Manual: Admin page button
- Cron job: Can be triggered via
wp-cron.php
Alert Detection Logic
The parser:
- Identifies alert lines (starting with
...) - Extracts alert text
- Categorizes by type (WARNING, WATCH, ADVISORY)
- Assigns severity level
- Adds appropriate emoji
- Stores separately from forecasts
Performance
- File-based caching: No database queries
- Efficient parsing: Regex-based extraction
- Smart updates: Only downloads when scheduled
- Minimal overhead: Cached PHP arrays
Support
For issues or questions:
- Check
/wp-content/debug.logfor errors - Verify NOAA URLs are accessible
- Ensure
/wp-content/wx/is writable
Version
Current version: 1.0.0
Author
Rick Xaver, genius