nulis.top

WordPress Plugin

Monorepo: wordpress-plugin/nulis-top-connector/

Instalasi

  1. Build zip dari source (setelah ada pembaruan plugin, jalankan ulang):

bash ./scripts/build-wp-plugin.sh

Output: wordpress-plugin/nulis-top-connector.zip — upload di WP Plugins → Add New → Upload, atau salin folder nulis-top-connector/ ke wp-content/plugins/.

  1. Aktifkan plugin nulis.top Connector.
  2. Ikuti setup wizard (4 langkah).

Auto-update (Plugins → Updates)

WordPress mengecek pembaruan dari studio URL yang dikonfigurasi di wizard (langkah 1).

Lingkungan File di VPS (dalam repo setelah deploy) URL publik
Production /var/www/nulis-studio/static/downloads/ https://studio.nulis.top/static/downloads/nulis-top-connector.json + .zip
Staging /var/www/nulis-studio-stg/static/downloads/ https://studio-stg.nulis.top/static/downloads/nulis-top-connector.json + .zip

Tidak perlu folder terpisah di luar repo — file disajikan oleh Flask/nginx dari folder static/downloads/ di aplikasi studio.

Setelah deploy, jalankan (otomatis di scripts/deploy-*.sh):

# Production
RELEASE_BASE_URL=https://studio.nulis.top ./scripts/build-wp-plugin.sh

# Staging
RELEASE_BASE_URL=https://studio-stg.nulis.top ./scripts/build-wp-plugin.sh

Script menghasilkan:

  • static/downloads/nulis-top-connector.zip
  • static/downloads/nulis-top-connector.json (versi, changelog, download_url)

Situs WordPress yang memakai Studio URL staging akan mengambil update dari staging; production dari production.

Setup wizard

Step Isi
1. Pair studio Paste API key dari nulis.top
2. Detect environment WP version, timezone, builders
3. SEO plugin Auto-detect Yoast / Rank Math / AIOSEO
4. Defaults Post type, template profile, status publish

SEO plugin detect

Prioritas auto-detect:

  1. Yoast (WPSEO_VERSION)
  2. Rank Math (class_exists('RankMath'))
  3. AIOSEO (AIOSEO_VERSION)
  4. none — meta ke excerpt / custom fields

Jika dua plugin SEO terpasang, wizard meminta pilihan manual.

Publish

  • Push dari studio atau pull via REST API
  • Idempotency: post_meta _nulis_article_uuid
  • Schedule: status: future + date (WP cron)

site_capabilities

Plugin POST ke studio setelah wizard:

{
  "wp_version": "6.7",
  "timezone": "Asia/Jakarta",
  "builders": ["elementor"],
  "seo_plugin": "rank_math",
  "seo_plugin_mode": "auto"
}

Tanpa plugin

Studio juga bisa publish langsung via Application Password + REST (integrations/connectors/wordpress.py).