Memasang, Memperbarui, dan Mengelola Plugin WordPress Dengan WP-CLI

Diterbitkan: 2022-07-26

WP-CLI memungkinkan Anda untuk melakukan hampir semua hal yang dapat Anda lakukan di admin WordPress, tetapi di baris perintah. Ini menghemat banyak waktu dan memberikan alur kerja yang lebih bersih. Anda dapat menggunakan WP-CLI untuk mengelola inti WordPress, menjalankan pembaruan tema, mengelola instalasi multisite, dan banyak lagi. Pada artikel ini kita akan berkonsentrasi pada salah satu kasus penggunaan yang paling umum, mengelola plugin WordPress Anda.

Perintah WP-CLI semuanya terstruktur dengan cara yang sama. Selalu ada perintah induk (seperti wp plugin ) dan subperintah (seperti install ), diikuti oleh parameter dan sakelar. Kami akan berkonsentrasi pada wp plugin dan sub-perintahnya di artikel ini, tetapi Anda dapat melihat penjelasan yang lebih rinci dalam panduan kami untuk struktur perintah WP-CLI.

Artikel itu menggunakan perintah wp plugin sebagai contoh, menyoroti cara menginstal dan mengaktifkan plugin menggunakan WP-CLI. Pada artikel ini kita akan menyelam lebih dalam tentang bagaimana mengelola plugin kita menggunakan antarmuka baris perintah WordPress.

Memasang dan Mengaktifkan Plugin

Saat ini ada 16 sub-perintah resmi untuk perintah induk wp plugin . Di bagian ini kita akan membahas sub-perintah untuk instalasi dan aktivasi. Kami juga akan melihat cara menginstal dan mengaktifkan plugin dengan satu perintah. Kita juga akan melihat cara memasang plugin dari sumber selain Direktori Plugin WordPress.

Masukkan wp plugin install diikuti oleh slug resmi plugin untuk menginstal versi terbaru:

instal plugin wp hello-dolly
Memasang Hello Dolly (1.7.2)
Mengunduh paket instalasi dari https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip...
Menggunakan file cache '/Users/eriktorsner/.wp-cli/cache/plugin/hello-dolly-1.7.2.zip'...
Keaslian hello-dolly.1.7.2.zip tidak dapat diverifikasi karena tidak ada tanda tangan yang ditemukan.
Membongkar paket...
Memasang plugin...
Plugin berhasil diinstal.
Sukses: Memasang 1 dari 1 plugin.

Selanjutnya, kita mengaktifkan plugin menggunakan perintah wp plugin activate :

plugin wp mengaktifkan hello-dolly
Plugin 'hello-dolly' diaktifkan.
Sukses: Mengaktifkan 1 dari 1 plugin.

Mencari Plugin Slug

Perhatikan bahwa slug seringkali berbeda dari nama plugin. Siput terlihat di URL plugin di Direktori Plugin WordPress, tetapi Anda dapat mempercepat alur kerja Anda dengan tetap menggunakan baris perintah dan menggunakan subperintah search , diikuti oleh dua parameter dan nilainya: --per-page=1 dan --fields=name,slug .

Parameter --per-page opsional memberi tahu WP-CLI berapa banyak hasil yang akan ditampilkan kepada kami, dalam hal ini hanya satu. Ini akan default untuk menampilkan 10 hasil jika Anda tidak memberikan parameter ini. Saya telah memberikan nilai 1 di sini karena saya hanya ingin melihat hasil yang paling relevan.

Parameter --fields memberi tahu WP-CLI untuk meminta bidang tertentu dari API, dalam hal ini nama plugin dan slug. Ada berbagai macam nilai yang dapat Anda gunakan di sini, termasuk version untuk melihat nomor versi saat ini, dan rating untuk melihat peringkat plugin sebagai persentase dan jumlah total peringkat. Anda dapat menggunakan --field=<field> jika Anda hanya ingin menampilkan hasil dari satu bidang. Anda harus menggunakan parameter --fields atau --field dengan perintah wp plugin search .

pencarian plugin wp "wp offload media" --per-page=1 --fields=name,slug
Sukses: Menampilkan 1 dari 66 plugin.
+------------------------------------------------- -------------------------------+------------------ --------+
| nama | siput |
+------------------------------------------------- -------------------------------+------------------ --------+
| WP Offload Media Lite untuk Amazon S3, DigitalOcean Spaces, dan Google Cloud Sto | amazon-s3-and-cloudfront |
| marah | |
+------------------------------------------------- -------------------------------+------------------ --------+

Karena respons untuk perintah ini adalah daftar, ini adalah kesempatan bagus untuk menunjukkan apa yang bisa dilakukan parameter --format . Mari kita minta WP-CLI untuk memberi kita daftar itu dalam format JSON, dan kemudian menyalurkannya melalui utilitas jq untuk pemformatan yang lebih cantik. Utilitas jq adalah prosesor JSON baris perintah ringan yang dapat Anda instal di tautan di atas, atau coba online. Pastikan untuk menghilangkan | jq | jq dari perintah di bawah ini jika Anda belum menginstalnya.

Saat kami meminta output berformat JSON, WP-CLI menghilangkan pesan status agar JSON tidak rusak:


$ wp plugin cari "wp offload media" --per-page=1 --fields=name,slug --format=json | jq
[
  {
    "name": "WP Offload Media Lite untuk Amazon S3, DigitalOcean Spaces, dan Google Cloud Storage",
    "slug": "amazon-s3-and-cloudfront"
  }
]

Untuk mengaktifkan plugin setelah diinstal, gunakan wp plugin activate diikuti oleh slug resmi plugin.

Menginstal dan Mengaktifkan Plugin Secara Bersamaan

Ketika datang untuk mengelola plugin Anda dengan WP-CLI, salah satu keuntungan besar adalah Anda dapat menginstal dan mengaktifkan plugin dengan satu perintah. Meskipun activate dapat digunakan sebagai subperintah dengan wp plugin , itu juga dapat digunakan sebagai parameter dengan perintah wp plugin install :

# Menginstal dan mengaktifkan plugin secara bersamaan
instal plugin wp --aktifkan hello-dolly

Memasang Versi Plugin Tertentu

Bukan hal yang aneh jika Anda ingin menginstal versi plugin tertentu untuk tujuan pengujian. Selama versi yang Anda inginkan masih tersedia di Direktori Plugin WordPress, Anda dapat memilih versi apa pun yang Anda inginkan:

# Memasang versi plugin tertentu
instal plugin wp woocommerce --version=5.5.3

Memasang Plugin Dari Lokasi Lain

Direktori Plugin WordPress bukan satu-satunya tempat kita bisa mendapatkan plugin. Kami juga dapat menginstal plugin langsung dari sistem file. Sebagian besar waktu ketika Anda membeli plugin premium, Anda mendapatkan pengiriman awal dalam bentuk file zip. WP-CLI akan dengan senang hati menginstal file zip itu secara langsung, tanpa perlu mengekstrak paketnya terlebih dahulu:

# Memasang plugin dari folder Unduhan
$wp plugin install ~/Downloads/advanced-custom-fields-pro.zip

Ini juga berfungsi jika plugin yang ingin Anda instal tersedia di URL, mungkin hanya dapat diakses dengan memberikan kredensial melalui parameter permintaan atau di server dengan sertifikat yang ditandatangani sendiri:

# Dapatkan plugin dari URL
instal plugin wp http://www.hellfish.media/my-plugin.zip

# ...atau bahkan file pribadi dari ember Amazon:
instal plugin wp https://s3.amazonaws.com/bucketname/my-plugin.zip?X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=abc123

# Dari server internal kami dengan sertifikat yang ditandatangani sendiri:
instal plugin wp https://intranet.hellfish.media/my-plugin.zip --insecure

Memperbarui Plugin Dengan WP-CLI

Setelah Anda menginstal plugin, penting untuk tetap memperbaruinya demi alasan keamanan. Untuk mengetahui apakah ada plugin yang akan diperbarui, kita dapat menjalankan perintah wp plugin list :

daftar plugin wp
+-------------------------------+----------+------ -----+--------+
| nama | status | perbarui | versi |
+-------------------------------+----------+------ -----+--------+
| amazon-s3-and-cloudfront | aktif | tersedia | 2.6.1 |
| halo-boneka | aktif | tersedia | 1.7.1 |
| wunderdevmu | harus digunakan | tidak ada | 1.0 |
+-------------------------------+----------+------ -----+--------+

Dalam hal ini, plugin Hello Dolly dan WP Offload Media memerlukan pembaruan. Secara alami ada sub-perintah terpisah untuk itu yang disebut update .

Kami dapat memperbaruinya satu per satu, atau sedikit malas dan hanya memperbarui semua yang perlu diperbarui sekaligus menggunakan --all switch. Perilaku default dari perintah pembaruan adalah memperbarui hingga versi terbaru yang tersedia, yang mencakup peningkatan versi utama. Tapi dengan menggunakan --minor switch kita bisa sedikit lebih berhati-hati dan hanya update untuk versi minor. Misalnya, kita dapat memintanya untuk memperbarui dari 1.2.3 ke 1.3.0, tetapi tidak ke 2.0.0. Kita bahkan bisa sangat ekstra hati-hati dan menggunakan sakelar --patch untuk membatasi pembaruan hanya pada patch, yaitu dari 1.2.3 ke 1.2.5 tetapi tidak pernah ke 1.3.0.

# Perbarui plugin dengan hati-hati satu per satu
pembaruan plugin wp wp-offload-media
pembaruan plugin wp hello-dolly

# Pendekatan koboi
pembaruan plugin wp --all

#Sedikit lebih masuk akal
pembaruan plugin wp --all --minor

# Sangat defensif
pembaruan plugin wp --all --patch

Catatan: --minor dan --patch mengasumsikan bahwa plugin menggunakan versi semantik. Jauh dari semua plugin melakukan ini, jadi Anda harus mencari plugin yang Anda gunakan sehingga Anda tidak mendapatkan kejutan yang tidak menyenangkan. Opsi --dry-run memungkinkan Anda untuk memeriksa dan memastikan perintah Anda benar:

# Uji pembaruan satu plugin menjadi hanya tambalan
pembaruan plugin wp hello-dolly --patch --dry-run

Parameter --exclude=<plugin name> digunakan untuk menunjukkan plugin mana yang harus dikecualikan dari pembaruan. Sertakan nama plugin sebagai daftar yang dipisahkan koma, dan WP-CLI akan memperbarui semua plugin lain sambil membiarkannya sendiri:

pembaruan plugin wp --all --exclude=hello-dolly
Mengaktifkan mode Pemeliharaan...
Mengunduh pembaruan dari https://deliciousbrains.com/my-account/download/7512/?version=2.6.2...
Membongkar pembaruan...
Menginstal versi terbaru...
Menghapus versi lama plugin...
Plugin berhasil diperbarui.
Menonaktifkan mode Pemeliharaan...
+--------------------------+------------+-------- -----+--------+
| nama | versi_lama | versi_baru | status |
+--------------------------+------------+-------- -----+--------+
| amazon-s3-and-cloudfront | 2.6.1 | 2.6.2 | Diperbarui |
+--------------------------+------------+-------- -----+--------+

Memaksa Instalasi Ulang Plugin

Sebagian besar plugin premium dilengkapi dengan pemeriksa pembaruan bawaan mereka sendiri yang juga berfungsi baik dengan WP-CLI. Menurut pengalaman saya, plugin apa pun yang dapat diperbarui dengan satu klik melalui halaman admin WordPress juga dapat diperbarui menggunakan WP-CLI. Namun dalam beberapa kasus, pembaruan disediakan melalui versi baru file zip yang perlu Anda letakkan di tempat yang benar di server Anda. Anda dapat menerapkan pembaruan semacam ini dengan memaksa penginstalan ulang plugin menggunakan tombol --force :

# Paksa plugin untuk menginstal ulang
instal plugin wp ~/Downloads/my-custom-plugin-v2.zip --force

Mengaktifkan Pembaruan Otomatis

Sejak versi 5.5, WordPress dapat secara otomatis memperbarui plugin. Pembaruan otomatis perlu diaktifkan untuk setiap plugin individual. WP-CLI tidak menawarkan penanganan massal untuk pembaruan otomatis. Itu harus dilakukan secara individual per plugin dengan menggunakan sub auto-updates . Anda dapat melihat cara kerjanya dengan perintah berikut:

# Periksa apakah pembaruan otomatis diaktifkan untuk sebuah plugin
plugin wp pembaruan otomatis status hello-dolly

# Aktifkan pembaruan otomatis 
pembaruan otomatis plugin wp mengaktifkan hello-dolly

# Nonaktifkan lagi
plugin wp pembaruan otomatis menonaktifkan hello-dolly

Menonaktifkan dan Menghapus Plugin

Memasang, mengaktifkan, dan memperbarui plugin adalah salah satu tugas yang paling umum, tetapi ada pekerjaan manajemen plugin lain yang dapat ditangani WP-CLI untuk kami.

Jika Anda pernah mencoba mencari tahu apa yang menyebabkan masalah di situs WordPress Anda, Anda mungkin disarankan untuk menonaktifkan semua plugin sebagai salah satu langkah pertama. Dimungkinkan untuk melakukan ini dengan penanganan massal di browser web, tetapi selalu membuat saya merasa gugup. Saya lebih suka melakukannya melalui baris perintah menggunakan --all switch.

# Nonaktifkan semua plugin sekaligus
plugin wp nonaktifkan --all

# Dan aktifkan kembali lagi
aktifkan plugin wp --all

Menghapus plugin sepenuhnya juga mudah dilakukan dengan WP-CLI. Satu perbedaan antara melakukan ini melalui baris perintah dan browser adalah bahwa WP-CLI akan membiarkan Anda menghapus plugin tanpa menjalankan kait penonaktifan terlebih dahulu. Jika Anda pernah menginstal plugin yang membuat WordPress crash selama penonaktifan, Anda tahu mengapa ini bisa sangat berguna:

# Nonaktifkan dan hapus instalan 
plugin wp menonaktifkan hello-dolly --uninstall

# Hapus plugin tanpa memberikannya kesempatan untuk menonaktifkan
plugin wp hapus hello-dolly

Ada juga subcommand toggle yang berhubungan dengan aktivasi dan penonaktifan plugin. Ini akan membalik atau mengaktifkan status aktivasi sehingga berubah menjadi kebalikan dari status saat ini. Anda dapat menambahkan --network untuk mengaktifkan atau menonaktifkan plugin untuk seluruh jaringan multisitus.

Plugin Checksum

WP-CLI memiliki kemampuan untuk membandingkan checksum dari plugin yang Anda instal dengan checksum untuk plugin dan versi yang sama di Direktori Plugin WordPress. Ini adalah cara yang sangat efisien untuk menentukan apakah file plugin di instalasi WordPress Anda telah dimanipulasi. Jika ya, itu merupakan indikasi kuat bahwa Anda telah diretas.

Checksum adalah algoritma komputer khusus yang dapat mengambil input dari jenis dan ukuran apa pun dan mengubahnya menjadi string pendek. String ini biasanya memiliki panjang sekitar 20-40 karakter, yang membuatnya cocok untuk disimpan dalam database. String yang dihasilkan ini disebut hash, tanda tangan, atau karena alasan historis, checksum.

Apa yang membuat algoritme ini unik adalah jika bahkan satu karakter berubah pada input, outputnya akan sangat berbeda. Masukkan semua file plugin ke dalam algoritma checksum satu per satu, dan Anda akan mendapatkan satu tanda tangan kecil, atau checksum, yang mewakili keseluruhan plugin.

Setiap kali versi baru plugin diterbitkan di Direktori Plugin WordPress, checksum dihitung dan disimpan untuk versi spesifik tersebut. Beberapa bulan kemudian ketika Anda ingin memeriksa ulang apakah Anda belum diretas, Anda dapat meminta WP-CLI untuk menghitung checksum untuk plugin Anda, dan membandingkannya dengan checksum asli yang disimpan WordPress. Jika ada file yang ditambahkan, dimodifikasi, atau hilang di pihak Anda, checksum untuk plugin akan berbeda dari yang asli dan WP-CLI akan membuat kebisingan tentangnya.

Sub-perintah yang menangani sihir pemeriksaan hash ini disebut verify-checksums dan pada dasarnya sama dengan menanyakan “apakah plugin saya tidak berubah sejak saya mendapatkannya dari Direktori Plugin WordPress?”

# Periksa satu plugin
plugin wp verifikasi-checksum hello-dolly
Sukses: Terverifikasi 1 dari 1 plugin

# Periksa semua plugin yang berasal dari repo
plugin wp verifikasi-checksum --all

Ini hanya berfungsi untuk plugin yang diinstal dari Direktori Plugin WordPress resmi, jadi plugin premium Anda tidak akan diperiksa dengan perintah ini. Sub-perintah verify-checksums juga ada untuk wp core tetapi tidak dapat digunakan untuk memverifikasi tema WordPress.

Perintah untuk Scripting

Sejauh ini, perintah yang telah kami bahas berguna bagi siapa saja yang perlu mengelola plugin WordPress. Kumpulan sub-perintah wp plugin terakhir yang akan saya bahas terutama menarik bagi pengembang WordPress, karena sebagian besar ditujukan untuk digunakan dalam skrip Bash.

Pertama kita perlu berbicara sedikit tentang kode keluar Unix. Dalam sistem Unix, semua program yang keluar berjalan kembali dengan kode keluar. Interpretasi standar adalah bahwa kode keluar 0 berarti program selesai dengan baik, sedangkan kode keluar bukan nol menunjukkan kesalahan terjadi.

Kode kesalahan sering digunakan dalam skrip shell untuk digunakan dalam pernyataan if/else dan bentuk percabangan lainnya. Kami tidak melihat kode keluar saat menjalankan perintah secara normal dari command prompt, tetapi kami selalu dapat menemukannya dengan menggunakan $? :

# Jalankan sesuatu yang berfungsi dan dapatkan kode keluar
tanggal
gema $?
0

# Jalankan sesuatu yang gagal
ls /folder yang tidak ada
ls: /idongfdg: Tidak ada file atau direktori seperti itu
gema $?
1

Di WP-CLI, kami memiliki banyak perintah yang sebagian besar dimaksudkan untuk memeriksa sesuatu dan mengembalikan kode keluar yang berguna. Perintah wp plugin memiliki dua sub-perintah ini, is-installed dan is-active , yang memungkinkan kita memeriksa apakah plugin tertentu diinstal dan diaktifkan:

# Periksa apakah hello-dolly diinstal (sudah)
plugin wp sudah diinstal hello-dolly
gema $?
0

# Hapus hello-dolly dan periksa lagi
plugin wp hapus hello-dolly
plugin wp sudah diinstal hello-dolly
gema $?
1

# Periksa apakah woocommerce diaktifkan
plugin wp aktif woocommerce
gema $?
0

# Nonaktifkan woocommerce
plugin wp menonaktifkan woocommerce
plugin wp aktif woocommerce
gema $?
1

Menggunakan perintah di atas, dimungkinkan untuk menulis skrip Bash yang melakukan hal yang berbeda tergantung pada apakah plugin tertentu diinstal/diaktifkan atau tidak.

Subcommand terakhir yang saya duga sebagian besar untuk keperluan scripting adalah path . Perintah ini hanya mengembalikan path ke file PHP utama plugin, dan akibatnya ke folder plugin juga. Kita bisa menggabungkan ini dengan tipuan Bash lainnya, misalnya seperti ini:

# Tampilkan semua file di folder plugin woocommerce
ls -al $(dirname $(jalur plugin wp woocommerce))

Ini tidak terlalu berguna dalam pekerjaan baris perintah sehari-hari, tetapi tentu saja berguna saat menulis skrip dan Anda perlu mendapatkan jalur untuk sebuah plugin.

Kesimpulan

Seperti yang Anda lihat, mengelola plugin WordPress melalui baris perintah meningkatkan kecepatan Anda dan membuat banyak tugas umum menjadi lebih sederhana. Saya telah membahas tugas paling umum dalam hal mengelola plugin Anda, tetapi saya mendorong Anda untuk menjelajah lebih jauh sendiri. Anda akan segera menemukan bahwa kekuatan WP-CLI jauh melampaui plugin, memungkinkan Anda untuk melakukan hampir semua hal yang dapat Anda lakukan di admin WordPress, tetapi jauh lebih cepat.

Apakah Anda memiliki contoh bagus tentang bagaimana Anda menggunakan perintah wp plugin ? Tolong beri tahu saya di komentar.