WP-CLI ile WordPress Eklentilerini Yükleme, Güncelleme ve Yönetme

Yayınlanan: 2022-07-26

WP-CLI, WordPress yöneticisinde, ancak komut satırında yapabileceğiniz hemen hemen her şeyi yapmanıza olanak tanır. Bu çok zaman kazandırır ve daha temiz bir iş akışı sağlar. WordPress çekirdeğini yönetmek, tema güncellemelerini çalıştırmak, çok siteli kurulumları yönetmek ve çok daha fazlası için WP-CLI'yi kullanabilirsiniz. Bu yazıda en yaygın kullanım durumlarından biri olan WordPress eklentilerinizi yönetmeye odaklanacağız.

WP-CLI komutlarının tümü aynı şekilde yapılandırılmıştır. Her zaman bir üst komut ( wp plugin gibi) ve bir alt komut ( install gibi) ve ardından parametreler ve anahtarlar vardır. Bu yazıda wp plugin ve alt komutlarına odaklanacağız, ancak WP-CLI komut yapısı kılavuzumuzda daha ayrıntılı bir açıklama görebilirsiniz.

Bu makale, wp plugin komutunu örnek olarak kullandı ve WP-CLI kullanarak eklentilerin nasıl kurulacağını ve etkinleştirileceğini vurguladı. Bu yazıda, WordPress komut satırı arayüzünü kullanarak eklentilerimizi nasıl yöneteceğimize çok daha derinden dalacağız.

Eklentileri Yükleme ve Etkinleştirme

Şu anda wp plugin ebeveyn komutu için 16 resmi alt komut var. Bu bölümde kurulum ve aktivasyon için alt komutları ele alacağız. Eklentileri tek bir komutla nasıl kuracağımıza ve etkinleştireceğimize de bakacağız. Ayrıca, WordPress Eklenti Dizini dışındaki kaynaklardan eklentilerin nasıl kurulacağına da bakacağız.

En son sürümü yüklemek için wp plugin install ve ardından eklentinin resmi bilgisini girin:

wp eklentisi merhaba-dolly yükleyin
Hello Dolly'yi Yükleme (1.7.2)
https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip adresinden kurulum paketi indiriliyor...
Önbelleğe alınmış '/Users/eriktorsner/.wp-cli/cache/plugin/hello-dolly-1.7.2.zip' dosyası kullanılıyor...
Hello-dolly.1.7.2.zip dosyasının orijinalliği, imza bulunamadığından doğrulanamadı.
Paketin açılması...
Eklenti yükleniyor...
Eklenti başarıyla kuruldu.
Başarılı: 1 eklentiden 1'i yüklendi.

Ardından, wp plugin activate komutunu kullanarak eklentiyi etkinleştiriyoruz:

wp eklentisi merhaba-dolly'yi etkinleştir
Eklenti 'merhaba-dolly' etkinleştirildi.
Başarı: 1 eklentiden 1'i etkinleştirildi.

Eklenti Slug Arama

Bilginin genellikle eklenti adından farklı olduğunu unutmayın. Bilgi, WordPress Eklenti Dizininde eklentinin URL'sinde görülebilir, ancak komut satırına bağlı kalarak ve search alt komutunu, ardından iki parametre ve bunların değerlerini kullanarak iş akışınızı hızlandırabilirsiniz: --per-page=1 ve --fields=name,slug .

İsteğe bağlı --per-page parametresi, WP-CLI'ye bize kaç tane sonuç göstereceğini söyler, bu durumda sadece bir tane. Bu parametreyi vermezseniz varsayılan olarak 10 sonuç görüntülenecektir. Sadece en alakalı sonucu görmek istediğim için burada 1 değerini verdim.

--fields parametresi, WP-CLI'ye API'den belirli alanları, bu durumda eklentinin adını ve bilgisini istemesini söyler. Geçerli sürüm numarasını görmek için version ve eklentinin rating hem yüzde hem de toplam derecelendirme sayısı olarak görmek için derecelendirme de dahil olmak üzere burada kullanabileceğiniz çok çeşitli değerler vardır. Bunun yerine, yalnızca tek bir alanın sonucunu görüntülemek istiyorsanız --field=<field> kullanabilirsiniz. wp plugin search komutuyla --fields veya --field parametresini kullanmalısınız.

wp eklenti araması "wp boşaltma ortamı" --per-page=1 --fields=name,slug
Başarılı: 66 eklentiden 1 tanesi gösteriliyor.
+------------------------------------------------ ----------------------------------+----------------- --------+
| isim | sümüklü böcek |
+------------------------------------------------ ----------------------------------+----------------- --------+
| Amazon S3, DigitalOcean Spaces ve Google Cloud Sto için WP Offload Media Lite | amazon-s3-ve-cloudfront |
| öfke | |
+------------------------------------------------ ----------------------------------+----------------- --------+

Bu komutun yanıtı bir liste olduğundan, --format parametresinin neler yapabileceğini göstermek için bu iyi bir fırsattır. WP-CLI'den bize bu listeyi JSON formatında vermesini isteyelim ve ardından daha güzel biçimlendirme için jq yardımcı programı aracılığıyla iletin. jq yardımcı programı, yukarıdaki bağlantıdan yükleyebileceğiniz veya çevrimiçi olarak deneyebileceğiniz hafif bir komut satırı JSON işlemcisidir. Atladığınızdan emin olun | jq Yüklü değilse, aşağıdaki komuttan | jq .

JSON formatlı çıktı istediğimizde, WP-CLI durum mesajını atlar, böylece JSON'u bozmayız:


$ wp eklenti araması "wp boşaltma ortamı" --per-page=1 --fields=name,slug --format=json | jq
[
  {
    "name": "Amazon S3, DigitalOcean Spaces ve Google Cloud Storage için WP Offload Media Lite",
    "slug": "amazon-s3-and-cloudfront"
  }
]

Eklentiyi yüklendikten sonra etkinleştirmek için, wp plugin activate ve ardından eklentinin resmi bilgisini kullanın.

Bir Eklentiyi Aynı Anda Kurma ve Etkinleştirme

Eklentilerinizi WP-CLI ile yönetmek söz konusu olduğunda, en büyük avantajlardan biri, bir eklentiyi tek bir komutla yükleyip etkinleştirebilmenizdir. activate , wp plugin ile bir alt komut olarak kullanılabilirken, wp plugin install komutu ile bir parametre olarak da kullanılabilir:

# Eklentiyi aynı anda kurun ve etkinleştirin
wp eklenti kurulumu -- merhaba-dolly'yi etkinleştirin

Belirli Bir Eklenti Sürümünü Yükleme

Test amacıyla bir eklentinin belirli bir sürümünü yüklemek istemeniz nadir değildir. İstediğiniz sürüm WordPress Eklenti Dizini'nde mevcut olduğu sürece, uygun gördüğünüz herhangi bir sürümü seçebilirsiniz:

# Belirli bir eklenti sürümünün yüklenmesi
wp eklentisi kurulumu woocommerce --version=5.5.3

Eklentileri Diğer Konumlardan Yükleme

WordPress Eklenti Dizini, eklentileri alabileceğimiz tek yer değil. Ayrıca doğrudan dosya sisteminden bir eklenti kurabiliriz. Premium bir eklenti satın aldığınızda çoğu zaman ilk teslimatı bir zip dosyası şeklinde alırsınız. WP-CLI, önce paketi çıkarmaya gerek kalmadan bu zip dosyasını mutlu bir şekilde yükleyecektir:

# İndirilenler klasöründen bir eklenti yükleme
$ wp eklenti kurulumu ~/Downloads/advanced-custom-fields-pro.zip

Bu ayrıca, yüklemek istediğiniz eklenti bir URL'de mevcutsa, belki de yalnızca istek parametreleri aracılığıyla kimlik bilgileri sağlanarak veya kendinden imzalı bir sertifikaya sahip bir sunucuda erişilebilirse çalışır:

# Eklentiyi bir URL'den alın
wp eklentisi kurulumu http://www.hellfish.media/my-plugin.zip

# ...hatta bir Amazon kovasındaki özel bir dosya:
wp eklentisi kurulumu https://s3.amazonaws.com/bucketname/my-plugin.zip?X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=abc123

# Kendinden imzalı bir sertifikaya sahip dahili sunucumuzdan:
wp eklentisi kurulumu https://intranet.hellfish.media/my-plugin.zip --insecure

WP-CLI ile Eklentileri Güncelleme

Bir eklenti yükledikten sonra, güvenlik nedenleriyle onu güncel tutmak önemlidir Güncellenecek herhangi bir eklenti olup olmadığını öğrenmek için wp plugin list komutunu çalıştırabiliriz:

wp eklenti listesi
+---------------------------------------------+----------+------ -----+---------+
| isim | durum | güncelleme | sürüm |
+---------------------------------------------+----------+------ -----+---------+
| amazon-s3-ve-cloudfront | aktif | mevcut | 2.6.1 |
| merhaba bebek | aktif | mevcut | 1.7.1 |
| harikalar | mutlaka kullanın | hiçbiri | 1.0 |
+---------------------------------------------+----------+------ -----+---------+

Bu durumda hem Hello Dolly hem de WP Offload Media eklentilerinin güncellenmesi gerekir. Doğal olarak bunun için update adında ayrı bir alt komut vardır.

Bunları tek tek güncelleyebiliriz ya da biraz tembel olabiliriz ve güncellenmesi gereken her şeyi --all anahtarını kullanarak tek seferde güncelleyebiliriz. update komutunun varsayılan davranışı, ana sürüm yükseltmelerini içeren mevcut en son sürüme kadar tamamen güncellemektir. Ancak --minor anahtarını kullanarak biraz daha dikkatli olabilir ve yalnızca küçük sürümler için güncelleme yapabiliriz. Örneğin, 1.2.3'ten 1.3.0'a güncellemesini söyleyebiliriz, ancak 2.0.0'a değil. Hatta son derece dikkatli olabiliriz ve güncellemeleri yalnızca yamalarla, yani 1.2.3'ten 1.2.5'e ama asla 1.3.0'a kadar sınırlamak için --patch anahtarını kullanabiliriz.

# Eklentileri tek tek dikkatlice güncelleyin
wp eklenti güncellemesi wp-offload-media
wp eklenti güncellemesi merhaba-dolly

# Kovboy yaklaşımı
wp eklenti güncellemesi -- tümü

# Biraz daha mantıklı
wp eklenti güncellemesi --all --minor

# Çok defansif
wp eklenti güncellemesi --all --patch

Not: --minor ve --patch anahtarları, eklentinin anlamsal sürüm oluşturma kullandığını varsayar. Tüm eklentilerden uzak olarak bunu yapar, bu nedenle, hoş olmayan sürprizlerle karşılaşmamak için kullandığınız eklentiler için bunu aramanız gerekir. --dry-run seçeneği, komutlarınızın doğru olup olmadığını kontrol etmenize ve emin olmanıza olanak tanır:

# Tek bir eklentiyi yalnızca yamalara güncellemeyi test edin
wp eklenti güncellemesi merhaba-dolly --patch --dry-run

--exclude=<plugin name> parametresi, hangi eklentilerin güncelleme dışında bırakılması gerektiğini belirtmek için kullanılır. Eklenti adlarını virgülle ayrılmış bir liste olarak ekleyin ve WP-CLI, diğer eklentileri tek başına bırakırken güncelleyecektir:

wp eklenti güncellemesi --all --exclude=hello-dolly
Bakım modu etkinleştiriliyor...
Güncelleme https://deliciousbrains.com/my-account/download/7512/?version=2.6.2... adresinden indiriliyor...
Güncelleme paketinden çıkarılıyor...
En son sürüm yükleniyor...
Eklentinin eski sürümü kaldırılıyor...
Eklenti başarıyla güncellendi.
Bakım modu devre dışı bırakılıyor...
+--------------------------+-------------+-------- -----+---------+
| isim | eski_versiyon | yeni_sürüm | durum |
+--------------------------+-------------+-------- -----+---------+
| amazon-s3-ve-cloudfront | 2.6.1 | 2.6.2 | Güncellendi |
+--------------------------+-------------+-------- -----+---------+

Eklentiyi Yeniden Yüklemeyi Zorlamak

Çoğu premium eklenti, WP-CLI ile de harika çalışan kendi yerleşik güncelleme denetleyicisiyle birlikte gelir. Deneyimlerime göre, WordPress yönetici sayfaları aracılığıyla tek tıklamayla güncellenebilen herhangi bir eklenti, WP-CLI kullanılarak da güncellenebilir. Ancak bazı durumlarda güncellemeler, sunucunuzda doğru yere koymanız gereken zip dosyasının yeni bir sürümü aracılığıyla sağlanır. --force anahtarını kullanarak eklentinin yeniden yüklenmesini zorlayarak bu tür güncellemeleri uygulayabilirsiniz:

# Bir eklentiyi yeniden yüklemeye zorla
wp eklenti kurulumu ~/Downloads/my-custom-plugin-v2.zip --force

Otomatik Güncellemeleri Etkinleştirme

5.5 sürümünden bu yana, WordPress eklentileri otomatik olarak güncelleyebilir. Her bir eklenti için otomatik güncellemelerin etkinleştirilmesi gerekir. WP-CLI, otomatik güncellemeler için herhangi bir toplu işlem sunmaz. auto-updates alt komutu kullanılarak eklenti başına ayrı ayrı yapılmalıdır. Aşağıdaki komutlarla nasıl çalıştığını görebilirsiniz:

# Bir eklenti için otomatik güncellemelerin etkin olup olmadığını kontrol edin
wp eklentisi otomatik güncelleme durumu merhaba-dolly

# Otomatik güncellemeleri etkinleştir 
wp eklentisi otomatik güncellemeleri merhaba-dolly'yi etkinleştirir

# Tekrar devre dışı bırak
wp eklentisi otomatik güncellemeleri merhaba-dolly'yi devre dışı bırakır

Eklentileri Devre Dışı Bırakma ve Kaldırma

Eklentileri yüklemek, etkinleştirmek ve güncellemek en yaygın görevler arasındadır, ancak WP-CLI'nin bizim için halledebileceği başka eklenti yönetimi işleri de vardır.

WordPress web sitenizde bir soruna neyin neden olduğunu bulmaya çalıştıysanız, muhtemelen ilk adımlardan biri olarak tüm eklentileri devre dışı bırakmanız tavsiye edilmiştir. Bunu bir web tarayıcısında toplu işlemle yapmak mümkündür, ancak bu beni her zaman gergin hissettirir. Bunu --all anahtarını kullanarak komut satırı üzerinden yapmayı tercih ederim.

# Tüm eklentileri bir kerede devre dışı bırakın
wp eklentisi devre dışı bırak --all

# Ve onları yeniden etkinleştir
wp eklentisi etkinleştir -- tümü

Bir eklentiyi tamamen kaldırmak da WP-CLI ile kolayca yapılabilir. Bunu komut satırı ve tarayıcı aracılığıyla yapmak arasındaki bir fark, WP-CLI'nin önce devre dışı bırakma kancalarını çalıştırmadan bir eklentiyi kaldırmanıza izin vermesidir. Devre dışı bırakma sırasında WordPress'i çökerten bir eklenti yüklediyseniz, bunun neden bu kadar yararlı olabileceğini bilirsiniz:

# Devre dışı bırak ve kaldır 
wp eklentisi merhaba-dolly'yi devre dışı bırak --uninstall

# Bir eklentiyi devre dışı bırakma şansı vermeden kaldırın
wp eklentisi merhaba-dolly'yi sil

Eklentilerin etkinleştirilmesi ve devre dışı bırakılmasıyla ilgili toggle alt komutu da vardır. Aktivasyon durumunu çevirecek veya değiştirecek, böylece mevcut durumun tersi olacak. Eklentiyi tüm çok siteli ağ için açıp kapatmak için --network ekleyebilirsiniz.

Eklenti Sağlama Toplamları

WP-CLI, yüklü eklentilerinizin sağlama toplamlarını, aynı eklenti ve WordPress Eklenti Dizini'ndeki sürüm için sağlama toplamlarıyla karşılaştırma yeteneğine sahiptir. Bu, WordPress kurulumunuzdaki eklenti dosyalarının değiştirilip değiştirilmediğini belirlemenin çok etkili bir yoludur. Varsa, saldırıya uğradığınızın güçlü bir göstergesidir.

Sağlama toplamları, herhangi bir tür ve boyutta bir girdi alıp onu kısa bir dizgeye dönüştürebilen özel bilgisayar algoritmalarıdır. Bu dize tipik olarak yaklaşık 20-40 karakter uzunluğundadır, bu da onu bir veritabanında depolamaya uygun hale getirir. Ortaya çıkan bu dizeye karma, imza veya tarihsel nedenlerle sağlama toplamı denir.

Bu algoritmaları benzersiz kılan şey, girişte tek bir karakter bile değişse çıkışın tamamen farklı olacağıdır. Bir eklentinin tüm dosyalarını tek tek sağlama toplamı algoritmasına besleyin ve sonunda tüm eklentiyi temsil eden küçük bir imza veya sağlama toplamı elde edeceksiniz.

WordPress Eklenti Dizininde bir eklentinin yeni bir sürümü her yayınlandığında, sağlama toplamı o belirli sürüm için hesaplanır ve kaydedilir. Birkaç ay sonra, saldırıya uğramadığınızı iki kez kontrol etmek istediğinizde, WP-CLI'den eklentilerinizin sağlama toplamını hesaplamasını isteyebilir ve bunları WordPress'in tuttuğu orijinal sağlama toplamlarıyla karşılaştırabilirsiniz. Eklenmiş, değiştirilmiş veya eksik dosyalar varsa, eklentinin sağlama toplamı orijinalinden farklı olacak ve WP-CLI bu konuda biraz gürültü yapacak.

Bu karma kontrol sihrini işleyen alt komuta verify-checksums denir ve esasen "eklentilerim onları WordPress Eklenti Dizininden aldığımdan beri değişmedi mi?" diye sormakla aynıdır.

# Tek bir eklenti olup olmadığını kontrol edin
wp eklentisi doğrulama-sağlama toplamı merhaba-dolly
Başarılı: 1 eklentiden 1'i doğrulandı

# Depodan gelen tüm eklentileri kontrol edin
wp eklentisi doğrulama-sağlama toplamları --all

Bu, yalnızca resmi WordPress Eklenti Dizini'nden yüklenen eklentiler için çalışır, bu nedenle premium eklentileriniz bu komut tarafından kontrol edilmeyecektir. verify-checksums alt komutu wp core için de mevcuttur ancak WordPress temalarını doğrulamak için kullanılamaz.

Komut Dosyası Oluşturma Komutları

Şimdiye kadar ele aldığımız komutlar, WordPress eklentilerini yönetmesi gereken herkes için kullanışlıdır. Ele alacağım son wp plugin alt komutları grubu, çoğunlukla Bash komut dosyalarında kullanılmak üzere tasarlandıkları için öncelikle WordPress geliştiricilerinin ilgisini çekiyor.

Öncelikle Unix çıkış kodlarından biraz bahsetmemiz gerekiyor. Bir Unix sisteminde, çalışan tüm programlar bir çıkış koduyla geri döner. Standart yorum, çıkış kodunun 0 , programın iyi bir şekilde tamamlandığı anlamına gelirken, sıfır olmayan bir çıkış kodunun bir hata oluştuğunu göstermesidir.

Hata kodları genellikle kabuk komut dosyalarında if/else ifadelerinde ve diğer dallanma biçimlerinde kullanılmak üzere kullanılır. Komut isteminden normal olarak bir komut çalıştırırken çıkış kodunu görmüyoruz, ancak her zaman $? :

# Çalışan bir şey çalıştırın ve çıkış kodunu alın
tarih
yankı $?
0

# Başarısız olan bir şeyi çalıştır
ls /varolmayan klasör
ls: /idongfdg: Böyle bir dosya veya dizin yok
yankı $?
1

WP-CLI'de, çoğunlukla bir şeyi kontrol etmeye ve kullanışlı bir çıkış kodu döndürmeye yönelik bir grup komuta sahibiz. wp plugin komutu, belirli bir eklentinin kurulu ve etkin olup olmadığını kontrol etmemizi sağlayan is-installed ve is-active olmak üzere bu alt komutlardan ikisine sahiptir:

# Hello-dolly'nin kurulu olup olmadığını kontrol edin (kurulu)
wp eklentisi yüklendi merhaba-dolly
yankı $?
0

# Hello-dolly'yi çıkarın ve tekrar kontrol edin
wp eklentisi merhaba-dolly'yi sil
wp eklentisi yüklendi merhaba-dolly
yankı $?
1

# WooCommerce'in etkin olup olmadığını kontrol edin
wp eklentisi etkin woocommerce
yankı $?
0

# WooCommerce'i devre dışı bırakın
wp eklentisi woocommerce'i devre dışı bırak
wp eklentisi etkin woocommerce
yankı $?
1

Yukarıdaki komutları kullanarak, belirli bir eklentinin kurulup/etkinleştirilmemesine bağlı olarak farklı şeyler yapan Bash betikleri yazmak mümkündür.

Çoğunlukla komut dosyası oluşturma amaçlı olduğundan şüphelendiğim son alt komut path . Bu komut, bir eklentinin ana PHP dosyasına ve dolayısıyla eklenti klasörüne giden yolu döndürür. Bunu diğer Bash hileleriyle birleştirebiliriz, örneğin şöyle:

# WooCommerce eklenti klasöründeki tüm dosyaları göster
ls -al $(dirname $(wp eklenti yolu woocommerce))

Bu, günlük komut satırı çalışmalarında çok kullanışlı değildir, ancak komut dosyaları yazarken kesinlikle kullanışlıdır ve bir eklentinin yolunu bulmanız gerekir.

Çözüm

Gördüğünüz gibi, WordPress eklentilerini komut satırı üzerinden yönetmek hızınızı artırır ve birçok yaygın görevi çok daha basit hale getirir. Eklentilerinizi yönetmek söz konusu olduğunda en yaygın görevleri ele aldım, ancak daha fazlasını kendi başınıza keşfetmenizi tavsiye ederim. Yakında WP-CLI'nin gücünün eklentilerin çok ötesine geçtiğini ve WordPress yöneticisinde yapabileceğiniz her şeyi pratik olarak yapmanıza izin verdiğini, ancak çok daha hızlı olduğunu göreceksiniz.

wp plugin komutunu nasıl kullandığınıza dair harika örnekleriniz var mı? Lütfen yorumlarda bana bildirin.