WP Manifestindependent plugin directory
manifest / integrations / wordpress-ai-pushpagesposts-plugin

WP Push Pages & Posts

Mengirimkan webhook bergaya REST API setiap kali post atau page diterbitkan.

by Robert / Dev Team · github.com/robertrullyp/wordpress-ai-pushpagesposts-plugin · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/robertrullyp/wordpress-ai-pushpagesposts-plugin/archive/refs/heads/main.zip

WordPress WP Push Pages & Posts

Plugin WordPress ringan yang mengirimkan webhook setiap kali ada post atau page yang diterbitkan. Payload yang dikirim meniru struktur respons REST API WordPress termasuk data media tersemat, sehingga mudah diproses oleh layanan eksternal seperti pipeline AI, layanan indexing, atau sistem sinkronisasi konten. Versi 1.2.0 menstandarkan branding menjadi WP Push, menambahkan tautan Settings pada daftar plugin aktif, serta memperkeras proses penyimpanan konfigurasi agar tersanitasi dan tersimpan cukup satu kali.

Arsitektur & Alur Kerja

  1. Hook Publish – Plugin mendaftarkan notify_external_on_publish ke aksi publish_post dan publish_page, tetapi hanya melanjutkan ketika post_status === 'publish'.
  2. Pengumpulan Data Konten – Saat hook dipanggil, plugin menyiapkan payload JSON berisi atribut utama post/page, meta informasi (author, kategori, tag), serta konten lengkap yang sudah difilter the_content.
  3. Resolusi Media – Plugin membangun blok _embedded yang berisi media unggulan (featured image) dan seluruh lampiran (attachment) yang terkait, termasuk media yang muncul di dalam konten editor melalui helper:
    • _wp_prepare_attachment_like_rest() untuk menormalisasi metadata media menyerupai REST API /wp/v2/media.
    • _wp_resolve_attachment_ids_from_content() untuk memindai HTML konten, mencari URL media, dan memetakannya ke attachment_id (mengatasi variasi URL seperti -150x150, -scaled, query string, dsb.).
  4. Keamanan – Opsi penandatanganan payload menggunakan HMAC-SHA256. Header X-Signature hanya dikirim bila secret_key diset.
  5. Eksekusi Webhook + Retry – Payload dikirim ke endpoint eksternal menggunakan wp_remote_post. Bila terjadi kegagalan (error transport atau HTTP non-2xx), plugin menjadwalkan retry asynchronous via WP Cron dengan exponential backoff (maksimal 3 kali percobaan). Log sukses/gagal direkam via error_log untuk memudahkan debugging.

Konfigurasi

Setelah plugin aktif, buka Settings → WP Push di WP Admin untuk menyesuaikan:

  • Webhook URL – Endpoint penerima payload JSON.
  • API Key / Token – Akan dikirim sebagai header API-KEY.
  • Secret Key (HMAC) – Opsional, jika diisi maka signature X-Signature akan disertakan.
  • Maksimal Percobaan & Jeda Dasar Retry – Mengatur exponential backoff untuk pengiriman ulang webhook.

Struktur Payload

Payload utama menyerupai wp/v2/posts atau wp/v2/pages:

{
  "id": 123,
  "type": "post",
  "link": "https://example.com/hello-world",
  "status": "publish",
  "date": "2024-05-07 10:00:00",
  "modified": "2024-05-07 10:15:00",
  "title": {"rendered": "Hello World"},
  "excerpt": {"rendered": "Ringkasan..."},
  "content": {"rendered": "<p>Konten HTML lengkap</p>"},
  "featured_media": 45,
  "_embedded": {
    "wp:featuredmedia": [ { /* objek media */ } ],
    "wp:attachment": [ { /* daftar media lain */ } ]
  },
  "meta": {
    "author": "Admin",
    "categories": ["Berita"],
    "tags": ["wordpress", "webhook"]
  }
}

Instalasi

  1. Salin file wp-push.php ke folder wp-content/plugins/wp-push.
  2. Tambahkan header plugin WordPress standar jika ingin mengaktifkan via Dashboard (atau letakkan pada mu-plugin).
  3. Aktifkan plugin melalui Dashboard WordPress.
  4. Buka Settings → WP Push untuk mengisi endpoint, kredensial, serta opsi retry.
  5. Lakukan uji coba publish post/page untuk memastikan webhook tersampaikan.

Catatan: Pastikan WP Cron aktif agar mekanisme retry dapat berjalan. Pada lingkungan yang memerlukan kontrol lebih lanjut, Anda dapat memetakan hook wp_push_retry_webhook ke scheduler lain seperti Action Scheduler.

Penanganan Kesalahan

  • Bila request gagal, WordPress akan menulis log ke error_log dengan awalan ❌ dan menjadwalkan retry otomatis (maksimum 3 kali).
  • Cek juga response code yang dilaporkan untuk memastikan endpoint siap menerima payload.
  • Anda dapat memonitor jadwal retry melalui WP-CLI (wp cron event list) atau plugin manajemen cron.

Dengan pendekatan ini, project menyediakan fondasi kuat untuk mengalirkan konten WordPress ke berbagai layanan eksternal secara real-time.

Changelog

1.2.0

  • Rebranding ke WP Push di seluruh UI dan dokumentasi.
  • Penguatan sanitasi & default settings agar penyimpanan konfigurasi berlangsung aman hanya ketika diperlukan.
  • Menambahkan tautan Settings langsung dari daftar plugin aktif di halaman Plugins.