🧩 一、Plugin 功能清單(後台)
以下是你自製 Plugin(例如:wp-weatherhub)的主要功能項目,包含 PHP 與 Python 的整合介面:
🔧 系統核心功能
- 氣象站資料管理
- 可新增多個氣象站(
station_id,station_name,location,API Key,API URL) - 儲存於自建資料表
wp_weather_stations - 可啟用/停用特定氣象站
- 自動檢查 API Key 是否有效
- 可新增多個氣象站(
- API 資料擷取(PHP 端)
- 可從中央氣象署開放資料平台以 REST API 擷取資料
- 支援排程(例如每小時自動更新)
- 可設定不同的氣象資料來源(溫度、降雨、風速、紫外線等)
- Python 資料爬取整合
- 可於後台新增爬蟲任務(網址、解析類型、間隔時間)
- 透過
exec()或背景執行觸發 Python 腳本(例如weather_crawler.py) - 將爬取結果(JSON 格式)寫入資料表
wp_weather_data - 支援 log 與錯誤紀錄檔(方便除錯)
- 資料儲存與快取
- MySQL 資料表:
wp_weather_stations(氣象站清單)wp_weather_data(爬取/API 資料)wp_weather_logs(執行紀錄與錯誤)
- 支援 transient / object cache 提升前端效能
- MySQL 資料表:
- 後台管理介面
- 使用 WordPress 原生設定頁(
admin_menu) - 設定分頁:
- 🔑 API 管理(新增中央氣象署 API Key、更新頻率)
- 🌦 氣象站管理(CRUD 操作)
- 🧠 Python 爬蟲任務(網址、執行狀態、上次更新時間)
- 🧾 執行紀錄(log browser)
- 支援 AJAX 即時測試 API 與爬蟲執行
- 使用 WordPress 原生設定頁(
🎨 二、前端可呈現內容清單(使用 Blocksy + Highcharts + TablePress)
📊 圖表與視覺化呈現(Highcharts)
- 溫度變化折線圖
- 每日或每小時氣溫變化
- 支援多氣象站對照(多條線)
- 降雨量柱狀圖
- 顯示過去 24 小時 / 7 天的降雨量
- 風速風向圖
- 使用 Highcharts Wind Barb 模組
- 紫外線、濕度、氣壓對照圖
- 可切換資料項目
- 即時監控面板(Dashboard)
- 顯示最新各站的即時值
- 使用 Highcharts Gauges(儀表板式圖表)
📋 資料表呈現(TablePress 或自建表格)
- 氣象資料總覽
- 每個氣象站的即時數據(溫度、濕度、風速、降雨量)
- 資料可從 Plugin 的資料表動態產生
- 歷史資料查詢表
- 透過 shortcode
[weather_table station="Tamsui"]生成 - 支援 DataTables 分頁、排序、搜尋
- 透過 shortcode
- 異常事件記錄
- 顯示爬蟲失敗、API 超時、資料異常的紀錄
🔌 Shortcodes 與 Gutenberg Blocks
[weather_chart type="temperature" station="all"]- 顯示多站氣溫折線圖
[weather_dashboard]- 顯示當前最新數據儀表板
[weather_table station="Tamsui"]- 顯示單站歷史表格資料
[weather_map]- 可擴充成顯示氣象站分佈地圖(Leaflet.js)
🌐 外觀整合(Blocksy 主題)
- Plugin 可輸出自定義區塊或 Widget(例如首頁顯示天氣小卡片)
- 支援 Blocksy 的動態資料掛鉤(Dynamic Data Hooks)
- 可設計簡約卡片樣式(溫度 + 圖示 + 更新時間)
🔮 延伸功能(可日後加入)
Telegram 通知(異常或 API 失敗)
Webhook 支援(Python 爬完即自動通知 Plugin 更新)
REST API 端點(供外部系統讀取氣象資料)
定時快照(每日自動存成 CSV / JSON)