WP-CLI ile WordPress Eklentilerini Yükleme, Güncelleme ve Yönetme
Yayınlanan: 2022-07-26WP-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.