Zonautara World Cup News Bot
Plugins Wordpress untuk Memproduksi Berita Piala Dunia Secara Otomatis
by Zonautara.com · github.com/ronnybuol/zonautara-worldcup-bot · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/ronnybuol/zonautara-worldcup-bot/releases/download/v1.1.0/zonautara-worldcup-bot-final.zipPlugin WordPress untuk agregasi, rewrite jurnalistik, dan publikasi otomatis berita Piala Dunia — dari sumber internasional dan Indonesia, dalam Bahasa Indonesia, dengan SEO siap pakai.
Daftar Isi
- Tentang Plugin
- Cara Kerja
- Fitur Utama
- Sumber Berita
- Prasyarat
- Instalasi
- Konfigurasi API Keys
- Pengaturan Plugin
- SEO — Rank Math Integration
- Estimasi Biaya
- Kaidah Jurnalistik
- Troubleshooting
- Struktur File
- Changelog
- Lisensi
- Tentang Pengembang
Tentang Plugin
Zonautara World Cup News Bot adalah plugin WordPress yang bekerja secara otomatis untuk:
- Mencari berita Piala Dunia terbaru dari berbagai sumber terpercaya (internasional & Indonesia)
- Menganalisis dan merewrite berita sesuai kaidah jurnalistik Indonesia menggunakan AI (GPT-4o-mini)
- Menerjemahkan konten berbahasa Inggris ke Bahasa Indonesia secara otomatis
- Mempublikasikan artikel lengkap ke WordPress — dengan featured image, SEO meta, tags, dan kategori
Plugin ini dikembangkan oleh tim Zonautara.com, media digital independen di Sulawesi Utara, Indonesia, sebagai alat redaksi untuk liputan Piala Dunia 2026.
Cara Kerja
┌─────────────────────────────────────────────────────────┐
│ WP-Cron Scheduler │
│ (30 menit / 1 jam / 2 jam / dst) │
└────────────────────────┬────────────────────────────────┘
│
┌──────────────▼──────────────┐
│ Fetch dari 4 Sumber │
│ Guardian · NewsAPI · GNews │
│ · FIFA RSS │
└──────────────┬──────────────┘
│
┌──────────────▼──────────────┐
│ Filter & Deduplikasi │
│ • Relevansi piala dunia │
│ • Umur berita (max 6 jam) │
│ • Cek duplikat (DB) │
└──────────────┬──────────────┘
│
┌──────────────▼──────────────┐
│ OpenAI GPT-4o-mini │
│ • Rewrite jurnalistik │
│ • Translate → Bahasa Indo │
│ • Generate SEO fields │
│ • Byline ZONAUTARA.com │
└──────────────┬──────────────┘
│
┌──────────────▼──────────────┐
│ Publish ke WordPress │
│ • Download featured image │
│ • Set Rank Math SEO meta │
│ • Set tags & kategori │
│ • Footer kredit sumber │
└─────────────────────────────┘
Fitur Utama
🤖 AI-Powered Rewriting
- Menggunakan OpenAI GPT-4o-mini (hemat, cepat, kualitas baik)
- Menulis ulang sesuai piramida terbalik — fakta terpenting di awal
- Lead paragraph wajib menjawab 5W1H (Siapa, Apa, Di mana, Kapan, Mengapa, Bagaimana)
- Panjang artikel mengikuti sumber asli — tidak dipotong paksa
- Byline
ZONAUTARA.com -otomatis di paragraf pertama
🌐 Multi-Sumber & Bilingual
- Artikel bahasa Inggris dan Spanyol diterjemahkan otomatis ke Bahasa Indonesia
- Query khusus
language=iddi NewsAPI dan GNews untuk menjangkau media Indonesia - Waktu artikel dikonversi ke WIB (UTC+7) atau disebutkan eksplisit zona waktunya
🖼️ Featured Image Otomatis
- Mengunduh gambar langsung dari URL sumber berita
- Jika gagal (gambar diblokir, tidak tersedia), otomatis menggunakan gambar stok dari Media Library secara round-robin (bergantian)
- ID gambar stok dapat dikonfigurasi langsung di kode
📈 SEO Rank Math Premium
Field yang diisi otomatis setiap artikel:
| Meta Key | Keterangan |
|---|---|
rank_math_title |
Judul SEO dengan variabel %sep% %sitename% |
rank_math_description |
Meta deskripsi 150–160 karakter |
rank_math_focus_keyword |
1 keyword utama |
rank_math_keywords |
4–7 keyword tambahan |
rank_math_og_title |
Judul Open Graph (Facebook/Twitter) |
rank_math_og_description |
Deskripsi Open Graph |
rank_math_twitter_title |
Judul Twitter Card |
rank_math_twitter_card_type |
summary_large_image |
rank_math_rich_snippet |
Schema.org NewsArticle |
🔁 Anti-Duplikat
- Setiap URL dan judul artikel disimpan hash-nya di database
- Artikel yang sama tidak akan diproses ulang meski muncul di beberapa sumber berbeda
- Data tracking otomatis dibersihkan setelah 30 hari
⏰ Penjadwalan Fleksibel
Pilihan interval: 30 menit · 1 jam · 2 jam · 3 jam · 6 jam · 12 jam · 24 jam
📋 Log Real-time
Dashboard log dengan color coding:
- 🟢
[SUCCESS]— artikel berhasil dipublish - 🔵
[INFO]— informasi proses - 🟡
[WARNING]— peringatan non-kritis - 🔴
[ERROR]— error yang perlu ditangani
Sumber Berita
| Sumber | Bahasa | Tipe | Gratis | Kualitas Konten |
|---|---|---|---|---|
| The Guardian API | Inggris | REST API | ✅ Unlimited | ⭐⭐⭐⭐⭐ Full article |
| NewsAPI.org | Inggris + Indonesia | REST API | ✅ 100 req/hari | ⭐⭐⭐⭐ Multi-sumber |
| GNews.io | Inggris + Indonesia | REST API | ✅ 100 req/hari | ⭐⭐⭐⭐ Multi-sumber |
| FIFA.com RSS | Inggris | RSS | ✅ Tanpa key | ⭐⭐⭐ Press release resmi |
Mengapa BBC Sport, ESPN, Goal.com, Sky Sports, Marca dihapus? Semua feed RSS tersebut hanya mengembalikan headline + 1-2 kalimat teaser — konten terlalu pendek untuk direwrite menjadi artikel jurnalistik yang layak. The Guardian dipilih karena API-nya mengembalikan
bodyTextartikel penuh.
Media Indonesia yang tercakup via NewsAPI & GNews (tidak langsung, lewat agregasi): Kompas.com, Detik.com, Tribunnews, Bola.com, Bola.net, Liputan6, CNN Indonesia, dan lainnya.
Prasyarat
- WordPress 5.8 atau lebih baru
- PHP 7.4 atau lebih baru
- cURL aktif di server (default di hampir semua hosting)
- OpenAI API key (wajib) — daftar di sini
- Rank Math SEO atau Rank Math SEO Premium (opsional, untuk field SEO otomatis)
- Minimal satu API key sumber berita (The Guardian direkomendasikan — gratis)
Instalasi
Cara 1: Upload ZIP (Paling Mudah)
- Download file ZIP dari halaman Releases di GitHub ini
- Masuk ke WordPress Admin → Plugins → Add New → Upload Plugin
- Upload file ZIP → klik Install Now → Activate Plugin
Cara 2: Clone via Git (untuk Developer)
cd /path/to/wordpress/wp-content/plugins/
git clone https://github.com/ronnybuol/zonautara-worldcup-bot.git
Kemudian aktifkan plugin via WordPress Admin → Plugins.
Cara 3: Manual Upload via FTP/Hostinger File Manager
- Extract ZIP
- Upload folder
zonautara-worldcup-botke/wp-content/plugins/ - Aktifkan via WordPress Admin → Plugins
Konfigurasi API Keys
Setelah plugin aktif, masuk ke ⚽ WC News Bot → Pengaturan → API Keys.
1. OpenAI API Key ⚠️ WAJIB
Plugin tidak akan berfungsi tanpa ini.
- Buka https://platform.openai.com/api-keys
- Klik Create new secret key
- Copy key (dimulai dengan
sk-...) → paste ke kolom OpenAI API Key
Pastikan akun OpenAI Anda sudah memiliki kredit. GPT-4o-mini sangat hemat — lihat estimasi biaya.
2. The Guardian API Key ✅ Gratis Unlimited — Direkomendasikan
- Buka https://open-platform.theguardian.com/access/
- Pilih Register for a Developer Key
- Isi formulir → key dikirim via email
- Paste ke kolom The Guardian API Key
3. NewsAPI.org ✅ Gratis 100 req/hari
- Buka https://newsapi.org/register
- Daftar dengan email
- Key langsung tersedia di dashboard
- Paste ke kolom NewsAPI Key
⚠️ Catatan kuota: Plugin menggunakan 4 query per run (2 bahasa Inggris + 2 bahasa Indonesia). Dengan interval 1 jam = 96 request/hari — masih dalam batas gratis. Hindari interval 30 menit jika menggunakan tier gratis.
4. GNews.io ✅ Gratis 100 req/hari
- Buka https://gnews.io/register
- Daftar → key tersedia di dashboard
- Paste ke kolom GNews API Key
Pengaturan Plugin
Jadwal & Batas
| Pengaturan | Default | Keterangan |
|---|---|---|
| Status Bot | Nonaktif | Aktifkan setelah semua API key diisi |
| Interval | 1 jam | Pilih sesuai kebutuhan dan kuota API |
| Maks artikel/run | 5 | Setiap artikel = 1 request OpenAI |
| Batas umur berita | 6 jam | Berita lebih tua dari ini diabaikan |
Pengaturan WordPress
| Pengaturan | Default | Keterangan |
|---|---|---|
| Status publikasi | Publish langsung | Bisa diubah ke Draft atau Pending Review |
| Kategori | Default WP | Buat kategori "Piala Dunia" dan pilih di sini |
| Author | Administrator | Pilih user yang akan menjadi penulis artikel bot |
| Featured image | Aktif | Nonaktifkan jika tidak ingin download gambar |
| Plugin SEO | Rank Math | Pilih sesuai plugin SEO yang Anda gunakan |
Gambar Stok Fallback
Jika ingin mengubah daftar ID gambar fallback, edit file includes/class-post-publisher.php:
private static $fallback_image_ids = [ 219128, 219149, 219127, 218838, 218554, 218149 ];
Ganti dengan ID attachment dari Media Library WordPress Anda.
Reset Pengaturan
Jika ada pengaturan yang perlu dikembalikan ke default (misalnya setelah update dari versi lama):
⚽ WC News Bot → Pengaturan → scroll ke bawah → klik "Reset Pengaturan ke Default"
API key dan kategori/author tidak akan dihapus.
WP-Cron di Shared Hosting
WP-Cron berjalan saat ada pengunjung ke situs. Untuk keandalan lebih di shared hosting (Hostinger, Niagahoster, dll), tambahkan real cron job:
Di cPanel → Cron Jobs:
# Interval 1 jam
0 * * * * curl -s "https://domain-anda.com/wp-cron.php?doing_wp_cron" > /dev/null 2>&1
# Interval 30 menit
*/30 * * * * curl -s "https://domain-anda.com/wp-cron.php?doing_wp_cron" > /dev/null 2>&1
Ganti domain-anda.com dengan domain WordPress Anda.
Estimasi Biaya
Semua sumber berita gratis. Satu-satunya biaya adalah OpenAI GPT-4o-mini:
| Interval | Artikel/hari | Token/bulan (est.) | Biaya/bulan (est.) |
|---|---|---|---|
| 30 menit (5 artikel/run) | 240 | ~7,2 juta | ~$1,50 |
| 1 jam (5 artikel/run) | 120 | ~3,6 juta | ~$0,75 |
| 2 jam (5 artikel/run) | 60 | ~1,8 juta | ~$0,38 |
| 6 jam (5 artikel/run) | 20 | ~600 ribu | ~$0,13 |
Harga GPT-4o-mini per Juni 2025: $0,15/1M input token + $0,60/1M output token
Kaidah Jurnalistik
Plugin ini dirancang mengikuti standar jurnalistik Indonesia:
- Piramida Terbalik — fakta paling penting di paragraf pertama
- 5W1H — setiap lead menjawab Who, What, Where, When, Why, How
- Waktu eksplisit — artikel menyebutkan waktu kejadian dengan jelas, termasuk zona waktu
- Byline media — setiap artikel dibuka dengan
ZONAUTARA.com -(dapat disesuaikan di kode) - Kredit sumber — footer artikel mencantumkan nama media asli dengan tautan eksternal (
nofollow, buka tab baru) - Parafrase, bukan plagiat — AI menulis ulang, bukan menyalin langsung
Troubleshooting
Bot tidak menghasilkan artikel
- Cek Log Aktivitas untuk detail error
- Pastikan OpenAI API key valid dan akun punya kredit
- Pastikan minimal satu sumber berita diaktifkan dan API key-nya benar
- Cek apakah ada artikel dalam 6 jam terakhir tentang piala dunia di sumber tersebut
Artikel hanya 1 paragraf / konten sangat pendek
- Kemungkinan sumber hanya mengembalikan teaser
- Pastikan The Guardian API aktif — ini sumber dengan konten terpanjang
- Cek log apakah ada warning
konten kosong
Featured image tidak muncul
- Gambar dari sumber mungkin diblokir (hotlink protection)
- Plugin akan otomatis fallback ke gambar stok CMS
- Pastikan ID gambar stok di
class-post-publisher.phpvalid di Media Library Anda
Error 429 dari OpenAI
- Kurangi Maks artikel per run menjadi 2-3
- Atau perpanjang interval jadwal
Feed lama (BBC, ESPN) masih muncul
Gunakan tombol Reset Pengaturan ke Default di halaman Pengaturan, atau jalankan di phpMyAdmin:
DELETE FROM wp_options WHERE option_name = 'zn_wcbot_rss_sources';
Kemudian nonaktifkan dan aktifkan kembali plugin.
WP-Cron tidak berjalan secara konsisten
Tambahkan real cron job di server — lihat bagian WP-Cron di atas.
Struktur File
zonautara-worldcup-bot/
│
├── zonautara-worldcup-bot.php # Entry point, activation hook, AJAX handlers
│
├── includes/
│ ├── class-feed-fetcher.php # Fetch FIFA.com RSS + filter relevansi
│ ├── class-news-api.php # NewsAPI.org (EN + ID query)
│ ├── class-gnews-api.php # GNews.io (EN + ID query)
│ ├── class-guardian-api.php # The Guardian Open API
│ ├── class-openai-processor.php # Rewrite + translate + generate SEO via GPT-4o-mini
│ ├── class-post-publisher.php # Buat WP post, set featured image, Rank Math meta
│ ├── class-duplicate-checker.php # Tracking artikel via DB (hash URL + judul)
│ ├── class-scheduler.php # WP-Cron engine + run_bot() orchestrator
│ └── class-logger.php # Activity logger dengan level & auto-rotate
│
├── admin/
│ └── class-admin-page.php # UI: Dashboard, Pengaturan, Log Aktivitas
│
├── assets/
│ ├── css/admin.css # Styling halaman admin
│ └── js/admin.js # Handler: run now, reset, log viewer
│
├── .github/
│ └── ISSUE_TEMPLATE/
│ ├── bug_report.md
│ └── feature_request.md
│
├── logs/ # Log file (diabaikan .gitignore)
├── .gitignore
├── CHANGELOG.md
├── LICENSE
└── README.md
Changelog
Lihat CHANGELOG.md untuk riwayat lengkap perubahan.
Lisensi
Plugin ini dilisensikan di bawah GNU General Public License v2.0 — bebas digunakan, dimodifikasi, dan didistribusikan. Lihat LICENSE untuk detail.
Tentang Pengembang
Plugin ini dikembangkan oleh Ronny Adolof Buol, Pemimpin Redaksi Zonautara.com — media digital independen berbasis di Sulawesi Utara, Indonesia, yang fokus pada jurnalisme investigatif dan data journalism.
Zonautara.com adalah bagian dari ekosistem media independen di kawasan timur Indonesia, dengan liputan mendalam di bidang lingkungan, pemerintahan, dan pembangunan daerah.
Kontribusi
Kontribusi sangat disambut! Silakan:
- Fork repositori ini
- Buat branch baru (
git checkout -b fitur/nama-fitur) - Commit perubahan Anda (
git commit -m 'Tambah fitur X') - Push ke branch (
git push origin fitur/nama-fitur) - Buat Pull Request
Untuk bug atau ide fitur, gunakan tab Issues di GitHub ini.
Dibuat dengan ☕ dan semangat jurnalisme independen dari Manado, Sulawesi Utara.
Releases
1 release. Each count is every asset in that release; expand a row for the breakdown.