Setiap pemilik website WordPress mengenal satu halaman yang sama: dashboard di alamat /wp-admin. Dari sana kita memasang plugin, mengganti tema, menulis artikel, dan memperbarui versi WordPress — semuanya lewat tombol dan formulir. Antarmuka itu memang dirancang supaya orang tanpa latar belakang teknis bisa mengelola websitenya sendiri.

Masalahnya muncul ketika pekerjaan yang sama harus diulang. Memperbarui dua puluh plugin berarti dua puluh kali menunggu halaman termuat ulang. Mengelola lima website berarti lima kali membuka dashboard yang berbeda. Dan ketika dashboard itu sendiri yang bermasalah — layar putih setelah memasang plugin baru, atau password admin yang hilang — satu-satunya pintu masuk yang Anda punya justru sedang tertutup.

WP-CLI menjawab ketiga keadaan itu dengan pendekatan yang berbeda: mengendalikan WordPress lewat perintah teks, bukan lewat halaman web.

WP-CLI Adalah Alat Kendali WordPress dari Baris Perintah

WP-CLI adalah alat resmi untuk mengelola website WordPress melalui command line interface (CLI, antarmuka baris perintah) — sebuah layar hitam tempat Anda mengetik perintah dan sistem membalas dengan teks. Alih-alih mengeklik tombol "Perbarui" di dashboard, Anda mengetik satu baris perintah lalu menekan Enter.

Yang membedakan WP-CLI dari sekadar menjalankan perintah SQL adalah cara kerjanya. WP-CLI merupakan program PHP yang memuat WordPress terlebih dahulu, persis seperti yang dilakukan browser saat seseorang membuka website Anda. Setelah WordPress termuat, WP-CLI memanggil fungsi internal WordPress yang sama dengan yang dipakai dashboard.

Perbedaan ini penting dan sering diabaikan. Karena melewati jalur resmi WordPress, setiap perintah WP-CLI ikut menjalankan hook (titik sisip tempat plugin menitipkan kode tambahan) yang relevan. Plugin cache tahu kalau ada artikel berubah. Plugin SEO tetap memperbarui indeksnya. Kalau Anda mengubah data langsung lewat database, semua mekanisme itu terlewat.

Alur perintah WP-CLI: diketik di terminal, dijalankan PHP lewat wp-cli.phar, memuat WordPress, lalu memperbarui database.Alur perintah WP-CLI: diketik di terminal, dijalankan PHP lewat wp-cli.phar, memuat WordPress, lalu memperbarui database.

Saat artikel ini ditulis, WP-CLI menyediakan 46 perintah tingkat atas. Beberapa di antaranya sudah bisa ditebak dari namanya: plugin, theme, user, post, db, core, dan cache. Sisanya menangani hal yang lebih spesifik seperti cron, transient, rewrite, dan search-replace.

Satu Perintah Menggantikan Belasan Klik

Nilai guna WP-CLI paling terasa pada pekerjaan berulang. Ambil contoh yang paling umum: memperbarui plugin.

Lewat dashboard, memperbarui tiga puluh plugin berarti mencentang kotak satu per satu, menekan tombol, lalu menunggu halaman memuat ulang sambil berharap koneksi tidak terputus di tengah jalan. Lewat WP-CLI, pekerjaan yang sama selesai dengan satu baris:

Bash
wp plugin update --all

Selisihnya bukan sekadar soal hemat waktu. Ada tiga hal yang berubah secara mendasar:

  1. Perintah bisa diulang persis sama: Mengetik perintah yang sama di sepuluh website menghasilkan tindakan yang identik. Tidak ada risiko salah klik pada website kelima karena tata letak dashboardnya sedikit berbeda.
  2. Perintah bisa dirangkai: Beberapa perintah dapat disusun menjadi satu berkas skrip, lalu dijalankan sekaligus. Ini yang membuat WP-CLI menjadi fondasi otomatisasi pada pengelolaan banyak website sekaligus.
  3. Perintah bisa dijadwalkan: Karena berjalan tanpa perlu ada orang yang menekan tombol, perintah WP-CLI dapat dititipkan ke penjadwal tugas server agar berjalan otomatis pada jam tertentu.

Ketiganya berasal dari sifat yang sama: perintah teks bersifat pasti dan dapat disimpan, sementara klik tidak.

Yang Anda Butuhkan Sebelum Memakai WP-CLI

Sebelum melangkah ke instalasi, ada tiga syarat yang perlu dipastikan lebih dulu.

Pertama, akses SSH ke server. WP-CLI dijalankan di server tempat WordPress Anda berada, bukan di komputer pribadi. Untuk masuk ke sana, Anda membutuhkan SSH (Secure Shell, protokol untuk mengakses server dari jarak jauh secara terenkripsi). Pengguna Windows biasanya memakai bantuan aplikasi seperti PuTTY untuk membuka koneksinya.

Inilah syarat yang paling sering menggagalkan rencana. Banyak paket hosting shared mematikan akses SSH secara bawaan, sebagian mengaktifkannya atas permintaan, dan sebagian lagi menyediakan Terminal langsung di dalam cPanel. Kalau paket Anda tidak menyediakannya sama sekali, VPS Indonesia memberi akses penuh ke server sehingga WP-CLI dapat dipasang tanpa batasan. Langkah konkret mengaktifkan akses terminal di panel dapat Anda ikuti pada panduan cara mengakses SSH cPanel.

Kedua, versi PHP yang memadai. WP-CLI membutuhkan PHP versi 7.2.24 atau lebih baru. Di luar itu, dokumentasi resminya menyatakan WP-CLI tidak menuntut apa pun melebihi kebutuhan WordPress sendiri. Periksa versi PHP di server dengan perintah berikut:

Bash
php --version

Ketiga, izin tulis di direktori WordPress. Perintah yang memasang plugin atau memperbarui berkas inti perlu menulis ke dalam folder website. Kalau kepemilikan berkasnya tidak sesuai dengan pengguna yang Anda pakai untuk masuk, sebagian perintah akan berhenti dengan pesan penolakan izin.

Cara Install WP-CLI di Server Linux

Metode yang direkomendasikan tim WP-CLI adalah mengunduh berkas Phar — sebuah arsip berisi seluruh program PHP dalam satu berkas, mirip berkas JAR di Java.

Langkah #1: Unduh Berkas wp-cli.phar

Masuk ke server lewat SSH, lalu unduh berkasnya:

Bash
curl -O https://raw.githubusercontent.com\
/wp-cli/builds/gh-pages/phar/wp-cli.phar

Tanda garis miring terbalik di akhir baris pertama hanya berfungsi menyambung perintah yang terlalu panjang. Anda boleh menuliskannya dalam satu baris utuh.

Langkah #2: Pastikan Berkasnya Berjalan

Uji berkas yang baru diunduh sebelum dipindahkan ke mana pun:

Bash
php wp-cli.phar --info

Kalau berhasil, terminal menampilkan informasi lingkungan: sistem operasi, lokasi biner PHP, versi PHP, dan versi WP-CLI. Kalau yang muncul justru pesan kesalahan soal versi PHP, berarti syarat PHP 7.2.24 belum terpenuhi.

Untuk keamanan tambahan, tim WP-CLI menyediakan berkas tanda tangan wp-cli.phar.asc. Anda dapat memverifikasi keaslian unduhan dengan GPG sebelum menjalankannya. Langkah ini opsional, tetapi disarankan pada server produksi.

Langkah #3: Jadikan Berkas Dapat Dieksekusi

Beri berkas itu izin untuk dijalankan sebagai program:

Bash
chmod +x wp-cli.phar

Langkah #4: Pindahkan agar Bisa Dipanggil dari Mana Saja

Pindahkan berkasnya ke direktori yang sudah terdaftar di PATH sistem, sekaligus ganti namanya menjadi wp:

Bash
sudo mv wp-cli.phar /usr/local/bin/wp

Sejak titik ini Anda cukup mengetik wp dari direktori mana pun. Periksa hasilnya dengan wp --info, dan cek versinya kapan saja dengan wp cli version. Untuk memperbarui WP-CLI di kemudian hari, jalankan wp cli update.

Metode Phar bukan satu-satunya. Pengguna macOS dapat memasangnya lewat Homebrew dengan brew install wp-cli. Proyek yang sudah memakai Composer bisa menambahkan paket wp-cli/wp-cli-bundle ke composer.json. Tersedia pula image resmi wordpress:cli untuk lingkungan Docker.

Di Windows, WP-CLI dijalankan lewat perantara. Pastikan PHP sudah terdaftar di PATH, simpan wp-cli.phar di sebuah folder seperti c:\wp-cli, lalu buat berkas wp.bat di folder yang sama berisi dua baris:

BATCH
@ECHO OFF
php "c:/wp-cli/wp-cli.phar" %*

Terakhir, daftarkan foldernya ke PATH dengan setx path "%path%;c:\wp-cli".

Cara Menggunakan WP-CLI: Anatomi Sebuah Perintah

Bagian ini menjadi jauh lebih mudah begitu Anda mengenali polanya. Hampir seluruh perintah mengikuti susunan yang sama:

TEXT
wp <perintah> <subperintah> [argumen] [--flag]

Mari bongkar satu contoh nyata:

Bash
wp plugin deactivate akismet --uninstall
  • wp — program WP-CLI itu sendiri
  • plugin — perintah utama, menentukan objek yang dikelola
  • deactivate — subperintah, menentukan tindakan atas objek tersebut
  • akismet — argumen, menyebut plugin mana yang dimaksud
  • --uninstall — flag, mengubah perilaku tindakan (di sini: hapus setelah dinonaktifkan)

Begitu pola ini dikenali, sebagian besar perintah dapat ditebak tanpa membuka dokumentasi. Anda ingin melihat daftar tema? wp theme list. Ingin membuat user baru? wp user create.

Anatomi perintah WP-CLI: wp program, plugin objek, deactivate tindakan, akismet sasaran, --uninstall pengubah perilaku.Anatomi perintah WP-CLI: wp program, plugin objek, deactivate tindakan, akismet sasaran, --uninstall pengubah perilaku.

Di samping itu ada parameter global yang berlaku pada semua perintah. Empat yang paling sering menyelamatkan keadaan:

  1. --path=: Menunjuk lokasi berkas WordPress secara eksplisit, berguna kalau Anda menjalankan perintah dari luar direktori website.
  2. --url=: Menentukan website mana yang dituju pada instalasi multisite.
  3. --skip-plugins: Menjalankan perintah tanpa memuat plugin sama sekali. Ini kunci pemulihan yang dibahas di bagian berikutnya.
  4. --ssh=: Menjalankan perintah terhadap server jauh atau kontainer, tanpa perlu masuk ke sana lebih dulu.

Kalau Anda lupa opsi sebuah perintah, dokumentasinya tersedia langsung di terminal. Mengetik wp help plugin menampilkan seluruh subperintah beserta penjelasannya tanpa perlu membuka browser.

Perintah WP-CLI yang Paling Sering Dipakai

Berikut perintah yang paling sering terpakai dalam pekerjaan harian, dikelompokkan menurut objek yang dikelola.

Plugin dan tema:

PerintahFungsi
wp plugin listMenampilkan semua plugin dan statusnya
wp plugin install akismet --activateMemasang sekaligus mengaktifkan
wp plugin update --allMemperbarui seluruh plugin
wp theme listMenampilkan tema yang terpasang
wp theme activate twentytwentyfiveMengganti tema aktif

User:

PerintahFungsi
wp user listMenampilkan seluruh user
wp user create budi budi@situs.idMembuat user baru
wp user update admin --user_pass=XMengganti password user

Inti WordPress dan database:

PerintahFungsi
wp core versionMenampilkan versi WordPress
wp core updateMemperbarui inti WordPress
wp core verify-checksumsMemeriksa keaslian berkas inti
wp db exportMembuat cadangan database
wp db import berkas.sqlMemulihkan database

Perintah wp db export layak mendapat perhatian lebih. Di baliknya, WP-CLI menjalankan mysqldump memakai kredensial MySQL yang sudah tersimpan di wp-config.php, jadi Anda tidak perlu mengetik nama database maupun passwordnya. Kalau nama berkas tidak disebutkan, hasilnya otomatis diberi nama berpola {namadatabase}-{tanggal}-{kode-acak}.sql.

Beberapa perintah perawatan juga sering dipakai: wp cache flush untuk mengosongkan cache objek, wp rewrite flush untuk menyegarkan struktur permalink, dan wp media regenerate untuk membuat ulang seluruh ukuran gambar setelah berganti tema.

Menyelamatkan Website yang Terkunci dari Dashboard

Bagian ini yang paling jarang dipersiapkan orang, padahal justru paling sering dibutuhkan. Ketika dashboard tidak bisa dibuka, WP-CLI tetap bekerja karena ia tidak melewati browser sama sekali.

Kasus pertama: password admin hilang. Anda tidak perlu menyentuh database. Satu perintah sudah cukup:

Bash
wp user update admin --user_pass='SandiBaru1'

WP-CLI membalas dengan Success: Updated user. Bandingkan dengan prosedur setaranya lewat database. Cara itu menuntut Anda membuka phpMyAdmin, mencari tabel user, lalu menyisipkan nilai hash dengan fungsi yang benar — langkahnya dijabarkan di panduan create user admin WordPress via MySQL. Jalur dashboard biasanya melalui cara mengganti password WordPress, yang tentu saja mensyaratkan Anda masih bisa masuk.

Kasus kedua: layar putih setelah memasang plugin. Plugin yang bentrok dapat membuat seluruh website berhenti merespons, dashboard sekalian. Di sini muncul persoalan melingkar: WP-CLI memuat WordPress, dan WordPress memuat plugin yang rusak itu.

Jawabannya adalah parameter --skip-plugins, yang memerintahkan WP-CLI memuat WordPress tanpa plugin apa pun:

Bash
wp --skip-plugins plugin deactivate --all

Perintah tersebut menonaktifkan seluruh plugin tanpa pernah menjalankan satu pun dari mereka. Setelah website hidup kembali, aktifkan plugin satu per satu untuk menemukan biang keladinya. Anda juga dapat mengecualikan plugin yang sudah pasti aman:

Bash
wp plugin deactivate --all --exclude=hello

Perlu diperhatikan, --skip-plugins tidak melewatkan mu-plugins (must-use plugins, plugin yang dimuat paksa oleh WordPress dari folder terpisah). Kalau masalahnya bersumber dari sana, plugin itu harus dipindahkan secara manual.

Padanan langkah ini di luar terminal adalah cara disable plugin WordPress melalui File Manager, yaitu mengganti nama folder plugin lewat panel hosting.

Kasus ketiga: berkas inti dicurigai berubah. Kalau Anda menduga website disusupi, WP-CLI dapat membandingkan seluruh berkas inti dengan checksum resmi dari WordPress.org:

Bash
wp core verify-checksums

Perintah ini mengunduh daftar checksum untuk versi WordPress yang sedang terpasang, lalu mencocokkannya berkas demi berkas. Yang menarik, dokumentasinya menyebutkan perintah ini sengaja tidak memuat WordPress demi alasan keamanan — supaya kode yang berpotensi sudah disusupi tidak ikut dijalankan saat pemeriksaan berlangsung. Berkas yang isinya menyimpang akan dilaporkan satu per satu.

Kenapa Mengganti URL Lewat SQL Sering Merusak Website

Ada satu pekerjaan yang membuat WP-CLI benar-benar sulit digantikan: mengganti seluruh URL di dalam database. Kebutuhan ini muncul saat memindahkan website dari localhost ke server, dari domain lama ke domain baru, atau saat beralih ke HTTPS.

Cara yang terlihat paling gampang adalah menjalankan perintah SQL semacam UPDATE ... REPLACE() di phpMyAdmin. Cara itu memang mengganti teksnya. Sayangnya cara itu pula yang membuat widget menghilang dan pengaturan tema kembali ke bawaan, tanpa satu pun pesan kesalahan yang menjelaskan sebabnya.

Penyebabnya ada pada cara WordPress menyimpan pengaturan yang berbentuk susunan data. Nilai seperti itu disimpan sebagai serialized data (data terserialisasi, yaitu struktur data yang diubah menjadi satu untai teks agar muat di satu kolom database). Bentuknya kira-kira begini untuk pengaturan berisi satu URL:

TEXT
a:1:{s:3:"url";s:14:"http://lama.id";}

Perhatikan angka 14 di sana. Angka itu adalah penghitung panjang karakter dari teks http://lama.id. PHP memakainya untuk mengetahui sampai mana sebuah nilai harus dibaca.

Sekarang bayangkan perintah SQL mengganti http://lama.id menjadi https://baru.id. Teksnya berubah, tetapi angka penghitungnya tidak ikut disentuh:

TEXT
a:1:{s:3:"url";s:14:"https://baru.id";}

Penghitungnya masih menyebut 14 karakter, padahal isinya kini 15 karakter. Saat WordPress mencoba membaca struktur itu, PHP menolaknya dan mengembalikan nilai false. WordPress lalu memperlakukannya sebagai pengaturan yang tidak ada, dan diam-diam memakai nilai bawaan. Dari sisi Anda, yang terlihat hanyalah widget yang lenyap.

Di sinilah wp search-replace bekerja berbeda. Perintah ini membongkar struktur terserialisasi, mengganti teks di dalamnya, lalu menyusunnya kembali beserta penghitung panjang yang sudah diperbarui. Dokumentasi resminya menyebutkan perintah ini menangani data terserialisasi PHP secara cerdas dan tidak mengubah nilai kunci utama tabel.

Penggantian lewat SQL menyisakan penghitung 14 sehingga unserialize gagal; wp search-replace memperbaruinya menjadi 15.Penggantian lewat SQL menyisakan penghitung 14 sehingga unserialize gagal; wp search-replace memperbaruinya menjadi 15.

Kebiasaan yang sebaiknya Anda pegang: jalankan dengan --dry-run lebih dulu.

Bash
wp search-replace 'http://situs-lama.id' \
  'https://situs-baru.id' --dry-run

Dengan flag tersebut, WP-CLI menghitung dan melaporkan berapa banyak baris yang akan berubah di tiap tabel, tanpa benar-benar mengubah apa pun. Setelah laporannya masuk akal, ulangi perintah yang sama tanpa --dry-run.

Beberapa flag pendamping yang sering dibutuhkan: --all-tables untuk menjangkau tabel di luar bawaan WordPress (misalnya tabel milik plugin toko online), dan --network untuk instalasi multisite. Kalau Anda hanya perlu mengubah alamat utama website tanpa menyentuh isi artikel, perintah wp option update lebih tepat sasaran — padanan manualnya dijelaskan di mengganti site address URL WordPress.

Sebelum menjalankan penggantian yang sebenarnya, buat cadangan database dengan wp db export sebelum-ganti-url.sql. WP-CLI tidak memiliki fitur pembatalan.

Kelemahan dan Hal yang Perlu Anda Pertimbangkan

WP-CLI bukan pengganti dashboard untuk semua keadaan. Ada beberapa hal yang perlu Anda timbang.

  1. Tidak ada tombol pembatalan: Dashboard sering meminta konfirmasi sebelum menghapus sesuatu. WP-CLI mengeksekusi begitu Enter ditekan. Perintah wp db export sebelum operasi besar bukan formalitas, melainkan satu-satunya jaring pengaman yang Anda punya.
  2. Kesalahan ketik berdampak seketika dan menyeluruh: Salah mengetik satu karakter pada perintah search-replace dapat mengubah ribuan baris database sekaligus. Inilah alasan --dry-run layak dijadikan kebiasaan, bukan pilihan.
  3. Membutuhkan akses SSH yang tidak selalu tersedia: Pada paket hosting shared yang paling hemat, akses terminal kerap tidak disediakan sama sekali. WP-CLI menjadi tidak relevan sebelum sempat dicoba.
  4. Ada kurva belajar bagi yang terbiasa antarmuka visual: Dashboard menunjukkan pilihan yang tersedia; baris perintah menuntut Anda mengetahuinya lebih dulu. Perintah wp help memperkecil jarak ini, tetapi tidak menghapusnya.
  5. Pekerjaan visual tetap lebih baik lewat dashboard: Menata tata letak halaman, memilih warna, atau menyusun menu jelas lebih masuk akal dikerjakan sambil melihat hasilnya.

Satu hal lagi yang sebaiknya Anda ketahui menyangkut pembaruan. Versi stabil terakhir WP-CLI adalah 2.12.0, dirilis pada 7 Mei 2025, dan hingga akhir Agustus 2026 belum ada penerusnya. Jarak antar-rilis memang melebar dibanding tahun-tahun sebelumnya.

Meski begitu, jangan menyimpulkan proyeknya berhenti. Repositori resminya masih menerima perubahan kode secara rutin — commit terakhir tercatat pada 29 Agustus 2026, termasuk penyesuaian untuk WordPress versi terbaru. Yang melambat adalah penerbitan versi stabilnya, bukan pengembangannya.

Pertanyaan yang Sering Muncul Seputar WP-CLI

Apakah semua hosting mendukung WP-CLI?

Tidak. Syaratnya bukan pada WP-CLI melainkan pada akses SSH, dan tidak semua paket menyediakannya. Sebagian penyedia memasang WP-CLI secara bawaan di server mereka sehingga Anda cukup mengetik wp setelah masuk lewat terminal. Cara tercepat memastikannya adalah masuk ke server lalu menjalankan wp --info.

Apakah WP-CLI bisa dipakai di Windows?

Bisa, dengan sedikit penyesuaian. Windows tidak mengenali berkas Phar sebagai program yang dapat langsung dijalankan, sehingga dibutuhkan berkas perantara wp.bat yang memanggil PHP. Namun perlu diingat bahwa WP-CLI dijalankan di tempat WordPress berada. Kalau website Anda ada di server, yang lebih lazim adalah memakai WP-CLI dari sisi server melalui SSH.

Kenapa muncul pesan "wp: command not found"?

Pesan itu berarti sistem tidak menemukan program bernama wp di daftar direktori PATH. Penyebab paling umum adalah Langkah #4 terlewat, sehingga berkasnya masih berada di direktori tempat Anda mengunduhnya. Uji dengan menjalankan php wp-cli.phar --info dari direktori tersebut. Kalau perintah itu berhasil, berarti pemasangannya benar dan yang kurang hanya pemindahan berkas ke /usr/local/bin/wp.

Apakah aman menjalankan WP-CLI sebagai root?

Sebaiknya tidak, dan WP-CLI sendiri akan menolak dengan peringatan bila dijalankan sebagai root. Alasannya praktis: berkas yang dibuat sebagai root akan dimiliki root, sedangkan web server berjalan sebagai pengguna lain. Akibatnya WordPress justru kehilangan izin menulis ke berkasnya sendiri. Jalankan WP-CLI sebagai pengguna yang memiliki direktori website tersebut.

Berapa versi WP-CLI yang paling baru?

Angka yang berlaku sampai akhir Agustus 2026 adalah 2.12.0, terbit 7 Mei 2025. Perlu ditegaskan karena sering ditanyakan: 2.13 maupun 3.0 belum pernah diterbitkan, jadi panduan yang menyebut keduanya keliru. Untuk mengetahui versi yang benar-benar terpasang di server Anda, jalankan wp cli version, lalu wp cli update bila ingin menaikkannya ke rilis terbaru.

Kesimpulan

WP-CLI adalah jalur kendali kedua untuk website WordPress — jalur yang tetap terbuka justru ketika dashboard sedang tidak bisa diakses. Karena memuat WordPress secara utuh sebelum bertindak, perintahnya aman dengan cara yang tidak dimiliki manipulasi database langsung, dan wp search-replace adalah contoh paling jelas dari perbedaan itu.

Alat ini paling layak dipakai kalau Anda mengelola lebih dari satu website, sering mengulang pekerjaan yang sama, atau ingin punya jalan masuk cadangan saat keadaan darurat. Untuk website tunggal yang jarang berubah dan pekerjaan yang sifatnya visual, dashboard tetap pilihan yang lebih masuk akal. Keduanya bukan pilihan yang saling meniadakan.

Semoga artikel ini membantu.