WP-CLI: WordPress için Komut Satırı Arayüzü Nedir?
Kurulu bir WordPress siteye müdahale etmenin bir çok yolu bulunmakta. /wp-admin
bunlar arasında elbette en bilineni ve en çok kullanılanı.
Panel üzerinden tema ve plugin yapılarının kontrol edilmesi, sürüm yükseltme, plugin ekleme/güncelleme işlemleri pratik bir şekilde (dosya izinlerinin uygun olmasına bağlı olarak) yapılabilmekte. Ancak, kimi durumlarda (örn. WordPress FTP functions.php
üzerinden Kullanıcı/Yönetici Oluşturma) wp-config.php
, functions.php
gibi dosyalar üzerinden işlemler yapmak durumunda kalabilmekteyiz. Bu tür düzenlemelerde FTP erişimi olmazsa olmazımız WP-Admin > Theme Editor altından da functions.php
düzenlemesi yapılabilmekte). Peki, diğer alternatifler neler? Bunlardan ilki ve terminal kodlarıyla da ilişkili olarak bahsedeceğim: WP-CLI
WP-CLI: WordPress için Komut Satırı Arayüzü
WP-CLI, WordPress kurulumlarınızı yönetebilmek için geliştirilmiş, farklı amaçlar doğrultusunda komutlar sunan bir komut satırı aracıdır. Örneğin WP-CLI1 üzerinden eklentilerinizi güncelleyebilir, multisite kurulumlarınızı yapabilir, kullanıcılar tanımlayabilir ve içeriklerinizi düzenleyebilirsiniz. Tabi bunlar sadece temel örnekler. Detaylıca incelediğinizde WP-CLI‘nin2 yönetim panelinden çok daha etkili (örneğin wp transient sadece komut satırı üzerinden kullanılabilmekte3) bir yapıya sahip olduğunu göreceksiniz. WP-CLI ile ilgili detayları wp-cli.org ve WP-CLI Commands4 üzerinden görüntüleyebilirsiniz.
WP-CLI Kullanımı
Öncelikle, WP-CLI üzerinden işlemler yürütebilmek için server’ın şu gereksinimleri karşıladığından emin olmalısınız5.
- Linux/UNIX işletim sistemi (macOS, Linux, FreeBSD, Cygwin vb.)
- PHP 5.3.29 veya daha üst sürüm
- WordPress 3.7 veya daha üst sürüm
Not: Windows kısıtlı desteklenmekte. Server gereksinimleri uygun ise wp-cli.phar
dosyasını wget
veya curl
ile indireceğiz. Diğer alternatifler için (Örn. Oh My Zsh) Installing6 sayfasını inceleyebilirsiniz. O halde SSH veya Mosh ile servera bağlanıyor ve aşağıdaki komutları uyguluyoruz.
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Yukarıdaki kod ile wp-cli.phar
(PHpARschive) dosyasını sunucumuza indirelim ve aşağıdaki komutla birlikte çalışıp çalışmadığını kontrol edelim.
php wp-cli.phar --info
Yukarıdaki komutu çalıştırdığımızda şuna benzer bir cevap almamız gerekli.
OS: Darwin 19.6.0 Darwin Kernel Version 19.6.0: Sun Jul 5 00:43:10 PDT 2020; root:xnu-6153.141.1~9/RELEASE_X86_64 x86_64
Shell: /bin/zsh
PHP binary: /usr/local/Cellar/php@7.3/7.3.19/bin/php
PHP version: 7.3.19
php.ini used: /usr/local/etc/php/7.3/php.ini
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /Users/username/Desktop
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.4.0
Homebrew üzerinden yapılan kurulumlarda klasör yolu içerisinde Cellar
görülmektedir.
chmod +x wp-cli.phar
Ardından wp-cli.phar
dosyasını /usr/local/bin/wp
dizinine taşıyalım.
sudo mv wp-cli.phar /usr/local/bin/wp
Tüm bu işlemlerin ardından kurulumu test ederek süreci doğrulamamız uygun olacaktır.
wp --info
WP-CLI Güncelleme
WP-CLI kurulum sonrasında güncelleme yapmak için aşağıdaki kodu komut satırından uygulamanız yeterli olacaktır.
wp cli update
Aşağıda ayrıca yukarıdaki komutların uygulama kaydını iletiyorum. Daha detaylı bilgi ve test ortamındaki sürüm güncellemeleri için wp-cli.org sayfasını takip edebilirsiniz.
WP-CLI Üzerinden Plugin İşlemleri
Gelelim birkaç örnek işleme… Pratik bir şekilde WP-CLI üzerinden istediğiniz eklentiyi /plugins
klasörü içerisine yükleyebilir ve tek bir komutla aktifleştirebilirsiniz.
WP-CLI: wp plugin
Sırasıyla plugin ekleme, aktifleştirme, pasifleştirme ve silme işlemlerine bakalım7.
WP-CLI: “wp plugin” İle Pluginleri Listeleme
wp plugin list
list
ile kurulu olan pluginleri listeleriz. Yeni bir plugin aramak için ise wp plugin search
komutunu kullanabiliriz. Örneğin ceaksan
kullanıcısı tarafından yazılmış eklentileri listelemek istiyorum.
wp plugin search ceaksan
Bu komut sonrasında alacağım cevap şu şekilde olacaktır.
Success: Showing 1 of 1 plugins.
+-------------------+-------------------+--------+
| name | slug | rating |
+-------------------+-------------------+--------+
| wpPostPageManager | wppostpagemanager | 0 |
+-------------------+-------------------+--------+
[–fields=]
parametresiyle daha detaylı sorgulama işlemleri yapabiliriz8. Aşağıda sorgulama için kullanabileceğiniz parametre detaylarını iletiyorum.
- name
- slug
- version
- author
- author_profile
- contributors
- requires
- tested
- compatibility
- rating
- num_ratings
- homepage
- description
- short_description
Yukarıdaki alt parametrelerden birkaçı kullanarak uygun eklentileri listeleyelim.
wp plugin search dsgnwrks --fields=name,version,slug,rating,num_ratings
Komutun çıktısı şuna benzer olacaktır,
Success: Showing 4 of 4 plugins.
+--------------------------------------+---------+--------------------------------------+--------+-------------+
| name | version | slug | rating | num_ratings |
+--------------------------------------+---------+--------------------------------------+--------+-------------+
| DsgnWrks Instagram Importer | 1.4.1 | dsgnwrks-instagram-importer | 84 | 32 |
| DsgnWrks Twitter Importer | 1.1.3 | dsgnwrks-twitter-importer | 80 | 1 |
| DsgnWrks Instagram Importer Debug | 0.1.6 | dsgnwrks-instagram-importer-debug | 0 | 0 |
| Enhanced Admin Bar with Codex Search | 2.0.7 | enhanced-admin-bar-with-codex-search | 100 | 1 |
+--------------------------------------+---------+--------------------------------------+--------+-------------+
WP-CLI: “wp plugin” İle Plugin Yükleme/Silme
wpPostPageManager pluginini (Plugins altında eklentinin yayınlandığı isme göre) kullanmak istiyoruz. Yapmamız gereken aşağıdaki komutu uygulamak. –activate
parametresi yükleme işlemi başarıyla tamamlandığında eklentinin aktifleştirilmesini sağlamaktadır.
wp plugin install [eklenti-adi] --activate
wpPostPageManager ve bbpress üzerinden hem var olan hem de yeni bir plugin yüklenmesine dair akışı aşağıda paylaşıyorum. Silme işleminde ise kullanacağımız komut9;
wp plugin delete [eklenti-adi]
Yaptığınız her işlemden sonra wp plugin list komutuyla eklenti kontrolü yapmanız uygun olacaktır. Uninstall işleminde ise wp plugin uninstall komutunu ve beraberinde –deactivate ve –skip-delete parametrelerini kullanabilmekteyiz. Örneğin hello isimli plugini uninstall etmek ancak sistemden silinmemesini istersek kullanacağımız komut şu şekilde olacaktır.
wp plugin uninstall hello --skip-delete
WP-CLI: “wp plugin” İle Plugin Aktifleştirme/Pasifleştirme
wp plugin activate [eklenti-adi]
wp plugin deactivate [eklenti-adi]
Peki, tüm eklentileri deactivate
/active
etmek istersek ne yapmalıyız? İşte bu noktada all
parametresi bize yardımcı olmakta10 11.
wp plugin activate --all
wp plugin deactivate --all
WP-CLI: “wp plugin” İle Plugin Güncelleştirme/Pasifleştirme
Sıklıkla kullanacağımız komutlardan biri olan update
bize tüm eklentileri veya harici seçimleri işleme imkanı sunmakta. Örnek olarak tüm eklentileri güncelleştirmek için şu komutu kullanabiliriz12.
wp plugin update --all
Sürümlere göre farklı istekler göndermemiz de mümkün. bbpress eklentisinin dev kurulumunu sistemimize dahil etmek için uygulamamız gereken komut şu şekilde olacaktır.
wp plugin update bbpress --version=dev
Peki, ya üzerinde işlemler yaptığımız eklentileri güncellemelerden hariç tutmak istersek? Bu durumda exclude parametresini kullanarak eklentileri toplu güncelleme içerisinde hariç tutabiliriz. Aşağıdaki komut sistemdeki tüm pluginlerin sürümlerini karşılaştıracak, yeni sürümler üzerinden güncelleştirmeleri yapacak ancak bu süreçte akismet eklentisini güncelleme dışı tutacaktır.
wp plugin update --all --exclude=akismet
WP-CLI Değerlendirmesi
wp plugin
dışında sıklıkla kullanacağınızı tahmin ettiğim komutlar wp cap
13, wp cli
, wp config
, wp cron
, wp db
, wp media
, wp package
, wp post
, wp post-type
, wp search-replace
olacaktır. En azıdan ilerleyen süreçte odaklanacağım komutların ağırlıklı olarak bunlar olacağını söyleyebilirim. Diğer tüm komutlar için commands
sayfasını inceleyebilirsiniz4.
WP-CLI Kullanıcı İşlemleri
Hazır yeri gelmişken, WordPress FTP (functions.php) Üzerinden Kullanıcı/Yönetici Oluşturma başlıklı yazıda değindiğim kullanıcı işlemini WP-CLI üzerinden yapmaya ne dersiniz? Öncelikle sistemde tanımlı kullanıcıları listeleyelim.
wp user list
Komut sonrasında tanımlı kullanıcılar id, user_login, display_name, user_email, user_registered ve roles detaylarıyla birlikte sunulacaktır. Yeni bir kullanıcıda şu yapıyı kullanmamız gerekiyor.
wp user create [kullanici-adi] [kullanici-email] --role=[yetki]
O halde espresso adında bir admin kullanıcı oluşturalım.
wp user create espresso info@kesfikahve.com --role=administrator
Komutun çalıştırılmasının ardından kullanıcı gerekli veri tabanı alanlarına eklenecek ve kullanıcıya ait şifre üretilerek ekrana yazılacak. Bu bilgilerle birlikte artık üye girişi yapabilirsiniz. Peki, var olan bir kullanıcının şifresini değiştirmek14 istersek ne yapmalıyız? Örneğin, az önce oluşturduğumuz kullanıcının şifresini coffeeholic olarak değiştirelim.
wp user update espresso --display_name=espresso --user_pass=coffeeholic
- Furkan Baycan. (2016). Zaman Dostu 5 WordPress CLI Desteği ↩
- How to Manage WordPress Users with WP-CLI ↩
- wp transient \<command>. WP-CLI Commands ↩
- WP-CLI Commands ↩ ↩
- Oğuzhan Selçuk Bülbül. (2015). WordPress Geliştirenlere Araçlar (Bölüm 1) ↩
- Installing. WP-CLI ↩
- wp plugin \<command>. WP-CLI Commands ↩
- wp plugin search. WP-CLI Commands ↩
- wp plugin delete. WP-CLI Commands ↩
- wp plugin deactivate. WP-CLI Commands ↩
- wp plugin activate. WP-CLI Commands ↩
- wp plugin update. WP-CLI Commands ↩
- wp cap \<command>. WP-CLI Commands ↩
- wp user \<command>. WP-CLI Commands ↩