WP-CLI v2 ile WordPress Sitenizi Komut Satırından Yönetme Rehberi
WordPress, dünya genelinde milyonlarca web sitesinin altyapısını oluşturan, kullanımı kolay ve güçlü bir içerik yönetim sistemidir (CMS). Ancak, bazen bir WordPress sitesini yönetmek, özellikle birden fazla siteyle uğraşıyorsanız veya karmaşık görevleri otomatikleştirmek istiyorsanız, web arayüzü üzerinden zaman alıcı ve zahmetli olabilir. İşte tam bu noktada WP-CLI (WordPress Command Line Interface) devreye girer. WP-CLI, WordPress sitenizi doğrudan komut satırından yönetmenizi sağlayan güçlü bir araçtır. Bu makale, WP-CLI v2’nin nasıl kurulacağını, temel kullanımını ve sitenizi komut satırından etkili bir şekilde yönetmek için kullanabileceğiniz çeşitli komutları ayrıntılı olarak ele alacaktır.
WP-CLI Nedir ve Neden Kullanmalısınız?
WP-CLI, WordPress yüklemelerinizi yönetmek için tasarlanmış bir dizi komut sunan açık kaynaklı bir komut satırı arayüzüdür. Eklentileri ve temaları güncelleyebilir, kullanıcıları yönetebilir, gönderileri düzenleyebilir, veritabanı işlemlerini gerçekleştirebilir ve hatta sıfırdan bir WordPress kurulumu yapabilirsiniz – tüm bunları bir web tarayıcısı açmadan, sadece terminal pencerenizden yapabilirsiniz.
WP-CLI kullanmanın başlıca avantajları şunlardır:
* Hız ve Verimlilik: Özellikle birden fazla işlem yapmanız gerektiğinde, web arayüzünden tek tek tıklamak yerine tek bir komutla birçok görevi halledebilirsiniz.
* Otomasyon: WP-CLI komutlarını Bash scriptlerine veya diğer otomasyon araçlarına entegre ederek rutin bakım görevlerini otomatik hale getirebilirsiniz. Bu, özellikle geliştiriciler ve sistem yöneticileri için paha biçilmezdir.
* Geliştirme ve Hata Ayıklama: Geliştirme ortamlarında hızlıca değişiklikler yapmak, veritabanı sorguları çalıştırmak veya hataları ayıklamak için idealdir.
* Uzaktan Yönetim: SSH erişimi olan herhangi bir sunucudan WordPress sitenizi yönetebilirsiniz.
* API Erişimi: WordPress’in temel işlevlerine doğrudan, programatik bir erişim sağlar.
WP-CLI’nin v2 sürümü, daha kararlı, daha hızlı ve daha fazla özellik sunan gelişmiş bir versiyondur. Bu makalede ele alacağımız tüm komutlar ve kullanımlar v2 sürümüyle uyumludur.
WP-CLI Kurulumu
WP-CLI’yi kullanmaya başlamadan önce, sunucunuzda veya yerel geliştirme ortamınızda bazı ön koşulların karşılandığından emin olmanız gerekir.
Sistem Gereksinimleri
* PHP: WP-CLI, PHP 5.6 veya daha yeni bir sürüm gerektirir. WordPress’in kendisi de daha yeni PHP sürümlerini (7.4 veya üzeri önerilir) gerektirdiğinden, genellikle bu gereksinim zaten karşılanmış olacaktır.
* WordPress: Çalışan bir WordPress kurulumu (kurulum ve veritabanı işlemleri için).
* SSH/Terminal Erişimi: Sunucunuza SSH aracılığıyla veya yerel makinenizde bir terminal penceresi üzerinden erişiminiz olmalıdır.
* cURL veya Wget: WP-CLI kurulum dosyasını indirmek için bu araçlardan birine ihtiyacınız olacaktır.
WP-CLI’yi İndirme ve Kurma
WP-CLI, tek bir PHAR (PHP Archive) dosyası olarak dağıtılır, bu da kurulumu son derece basit hale getirir.
1. WP-CLI PHAR Dosyasını İndirme:
Terminalinizi açın ve aşağıdaki komutları kullanarak wp-cli.phar dosyasını indirin:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Alternatif olarak, wget kullanabilirsiniz:
wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
2. Çalıştırılabilir Hale Getirme:
İndirdiğiniz dosyayı çalıştırılabilir hale getirin:
chmod +x wp-cli.phar
3. PATH’e Ekleme (Önerilen):
wp-cli.phar dosyasını sistem PATH’inize ekleyerek her dizinde php wp-cli.phar yerine sadece wp yazarak kullanabilirsiniz. Bunun için dosyayı genellikle /usr/local/bin gibi bir dizine taşımanız ve adını wp olarak değiştirmeniz önerilir:
sudo mv wp-cli.phar /usr/local/bin/wp
Bu komut, wp-cli.phar dosyasını /usr/local/bin dizinine taşır ve adını wp olarak değiştirir. Artık herhangi bir dizinden wp komutunu kullanabilirsiniz.
Kurulumu Doğrulama
Kurulumun başarılı olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın:
wp --info
Bu komut, WP-CLI sürümünü, PHP sürümünü, WordPress sürümünü ve diğer sistem bilgilerini gösterecektir. Eğer bu bilgiler ekrana geliyorsa, WP-CLI başarıyla kurulmuştur.
Temel Kullanım ve Komut Yapısı
WP-CLI’nin temel komut yapısı oldukça basittir:
wp -- --
* wp: Ana komut.
* : Yapmak istediğiniz genel işlemi tanımlar (örneğin, plugin, theme, user, core, db).
* : Belirli komut içinde daha spesifik bir eylemi belirtir (örneğin, plugin install, theme activate, user create).
* --: Komutun davranışını değiştiren veya ek bilgi sağlayan isteğe bağlı bayraklardır (örneğin, --allow-root, --path=/var/www/html/wordpress).
Yardım Alma
WP-CLI’nin en kullanışlı özelliklerinden biri, kapsamlı yerleşik yardım sistemidir. Herhangi bir komut veya alt komut hakkında bilgi almak için help alt komutunu kullanabilirsiniz:
* Genel yardım: wp help
* Belirli bir komut hakkında yardım: wp plugin help
* Belirli bir alt komut hakkında yardım: wp plugin install help
Otomatik Tamamlama (Autocompletion)
WP-CLI, Bash veya Zsh kabukları için otomatik tamamlama desteği sunar. Bu, komutları daha hızlı yazmanıza ve olası hataları azaltmanıza yardımcı olur. Otomatik tamamlama özelliğini kurmak için aşağıdaki komutu çalıştırın:
wp cli enable-tab-completion
Bu komut, kabuk yapılandırma dosyanıza (örneğin, .bashrc veya .zshrc) gerekli satırları ekleyecektir. Değişikliklerin etkili olması için terminalinizi yeniden başlatmanız veya yapılandırma dosyanızı kaynaklamanız gerekebilir (source ~/.bashrc).
WordPress Çekirdek Yönetimi
WP-CLI ile WordPress çekirdeği üzerinde çeşitli işlemler yapabilirsiniz.
WordPress Kurulumu
WP-CLI ile sıfırdan bir WordPress sitesi kurmak oldukça kolaydır:
1. WordPress Çekirdeğini İndirme:
wp core download
Bu komut, WordPress’in en son sürümünü mevcut dizine indirir. Belirli bir sürümü indirmek için --version parametresini kullanabilirsiniz: wp core download --version=5.8.3
2. wp-config.php Dosyasını Oluşturma:
wp config create --dbname=veritabani_adi --dbuser=veritabani_kullanicisi --dbpass=veritabani_sifresi --dbhost=localhost --dbprefix=wp_ --locale=tr_TR
Bu komut, veritabanı bağlantı bilgilerini ve diğer temel ayarları içeren wp-config.php dosyasını oluşturur. Güvenlik anahtarlarını otomatik olarak eklemek için --extra-php parametresini kullanabilirsiniz.
3. Veritabanını Oluşturma:
wp db create
wp-config.php dosyasındaki bilgilerle veritabanını oluşturur.
4. WordPress Kurulumunu Tamamlama:
wp core install --url=http://example.com --title="Benim Yeni Sitem" --admin_user=admin --admin_password=cok_guclu_sifre --admin_email=admin@example.com --skip-email
Bu komut, WordPress kurulumunu tamamlar, yönetici hesabı oluşturur ve sitenin başlığını belirler. --skip-email bayrağı, yeni yönetici kullanıcıya e-posta gönderilmesini engeller.
WordPress Güncelleme
WordPress çekirdeğini güncellemek için:
wp core update
Bu komut, sitenizin en son WordPress sürümüne güncellenmesini sağlar. Sadece belirli bir sürümdeki güncellemeyi kontrol etmek için wp core check-update komutunu kullanabilirsiniz.
WordPress Sürüm Bilgisi
Mevcut WordPress sürümünüzü öğrenmek için:
wp core version
WordPress Dil Paketleri
Sitenizin dil paketlerini yönetmek için:
* Mevcut dil paketlerini listeleme: wp language core list
* Yeni bir dil paketi kurma: wp language core install tr_TR
* Varsayılan site dilini ayarlama: wp site switch-language tr_TR
Veritabanı Yönetimi
WP-CLI, WordPress veritabanı üzerinde güçlü ve esnek kontrol sağlar.
Veritabanı Bilgisi
Veritabanı bağlantı bilgilerini görüntülemek için:
wp db cli
Bu komut, doğrudan MySQL istemcisini açarak veritabanınızla etkileşime geçmenizi sağlar.
Veritabanı Optimizasyonu ve Onarımı
* Veritabanını optimize etme:
wp db optimize
Bu komut, veritabanı tablolarını optimize ederek performansı artırabilir.
* Veritabanını onarma:
wp db repair
Hasarlı veritabanı tablolarını onarmaya çalışır.
Yedekleme ve Geri Yükleme
* Veritabanını yedekleme:
wp db export yedek.sql
Bu komut, veritabanının bir yedeğini yedek.sql adında bir dosyaya kaydeder.
* Veritabanını geri yükleme:
wp db import yedek.sql
Bu komut, yedek.sql dosyasındaki verileri veritabanına aktarır. Dikkat: Bu işlem mevcut veritabanınızı üzerine yazar!
Veritabanında Arama ve Değiştirme (Search-Replace)
wp search-replace komutu, bir WordPress sitesini taşırken veya belirli bir metni veritabanı genelinde değiştirmek istediğinizde son derece güçlü ve kullanışlıdır.
wp search-replace 'eski_url' 'yeni_url' --dry-run
* 'eski_url': Değiştirilecek eski metin veya URL.
* 'yeni_url': Yerine konulacak yeni metin veya URL.
* --dry-run: Bu bayrak, komutun gerçekten bir değişiklik yapmadan neleri değiştireceğini gösterir. Önce her zaman --dry-run ile test etmeniz şiddetle tavsiye edilir.
* --all-tables: Varsayılan olarak yalnızca WordPress tablolarında arama yapar. Tüm tablolarda arama yapmak için bu bayrağı kullanın.
* --precise: Serileştirilmiş verilerdeki değişiklikleri daha doğru bir şekilde ele alır.
* --skip-columns: Belirli sütunları atlamak için. Örneğin, guid sütununu atlamak iyi bir uygulamadır: --skip-columns=guid
Örnek bir site taşıma işlemi:
wp search-replace 'http://eski-site.com' 'https://yeni-site.com' --precise --dry-run
wp search-replace 'http://eski-site.com' 'https://yeni-site.com' --precise --skip-columns=guid
Bu komut, veritabanındaki tüm eski URL’leri yeni URL’lerle değiştirir ve serileştirilmiş verileri de doğru şekilde günceller.
Eklenti Yönetimi
WP-CLI ile eklentileri yüklemek, etkinleştirmek, devre dışı bırakmak ve güncellemek çok daha hızlıdır.
Eklentileri Listeleme
Yüklü tüm eklentileri listelemek için:
wp plugin list
Bu komut, eklentinin adı, durumu (aktif/pasif), sürümü ve mevcut güncellemeler hakkında bilgi verir.
Eklenti Kurulumu
WordPress.org deposundan bir eklenti yüklemek için:
wp plugin install akismet
Birden fazla eklenti yüklemek için:
wp plugin install akismet jetpack
Yüklendikten sonra otomatik olarak etkinleştirmek için --activate bayrağını kullanın:
wp plugin install yoast-seo --activate
Zip dosyasından eklenti yüklemek için:
wp plugin install /path/to/my-plugin.zip
Eklenti Etkinleştirme/Devre Dışı Bırakma
* Bir eklentiyi etkinleştirme:
wp plugin activate akismet
* Tüm eklentileri etkinleştirme:
wp plugin activate --all
* Bir eklentiyi devre dışı bırakma:
wp plugin deactivate akismet
* Tüm eklentileri devre dışı bırakma:
wp plugin deactivate --all
Eklenti Güncelleme
* Belirli bir eklentiyi güncelleme:
wp plugin update akismet
* Tüm eklentileri güncelleme:
wp plugin update --all
Eklenti Kaldırma
* Bir eklentiyi kaldırma (önce devre dışı bırakılmalıdır):
wp plugin uninstall akismet
* Bir eklentiyi silme (dosyaları kaldırır):
wp plugin delete akismet
Tema Yönetimi
Eklenti yönetimine benzer şekilde, temaları da WP-CLI ile yönetebilirsiniz.
Temaları Listeleme
Yüklü tüm temaları listelemek için:
wp theme list
Bu komut, temanın adı, durumu (aktif/pasif), sürümü ve mevcut güncellemeler hakkında bilgi verir.
Tema Kurulumu
WordPress.org deposundan bir tema yüklemek için:
wp theme install twentytwentythree
Zip dosyasından tema yüklemek için:
wp theme install /path/to/my-theme.zip
Tema Etkinleştirme
Bir temayı etkinleştirme:
wp theme activate twentytwentythree
Tema Güncelleme
* Belirli bir temayı güncelleme:
wp theme update twentytwentythree
* Tüm temaları güncelleme:
wp theme update --all
Tema Kaldırma
* Bir temayı kaldırma (aktif olmayan temalar için):
wp theme uninstall twentytwentyone
* Bir temayı silme (dosyaları kaldırır):
wp theme delete twentytwentyone
Kullanıcı Yönetimi
Kullanıcıları oluşturmak, düzenlemek ve silmek WP-CLI ile çok daha hızlıdır.
Kullanıcıları Listeleme
Tüm kullanıcıları listelemek için:
wp user list
Belirli rol veya diğer kriterlere göre filtrelemek için parametreler kullanabilirsiniz. Örneğin, yalnızca yöneticileri listelemek:
wp user list --role=administrator
Kullanıcı Oluşturma
Yeni bir kullanıcı oluşturmak için:
wp user create yeni_kullanici yeni@eposta.com --user_pass=guclu_sifre --role=editor
* yeni_kullanici: Kullanıcı adı.
* yeni@eposta.com: Kullanıcının e-posta adresi.
* --user_pass: Kullanıcının parolası.
* --role: Kullanıcının rolü (örneğin, subscriber, contributor, author, editor, administrator).
Kullanıcı Parolası Sıfırlama
Mevcut bir kullanıcının parolasını sıfırlamak için:
wp user update --user_pass=yeni_guclu_sifre
Kullanıcı ID’sini wp user list komutuyla bulabilirsiniz.
Kullanıcı Rolünü Değiştirme
Bir kullanıcının rolünü değiştirmek için:
wp user update --role=administrator
Kullanıcı Silme
Bir kullanıcıyı silmek için:
wp user delete
Kullanıcının tüm gönderilerini başka bir kullanıcıya atamak için --reassign parametresini kullanabilirsiniz:
wp user delete --reassign=1
Burada 1 genellikle yönetici kullanıcısının ID’sidir.
Gönderi ve Sayfa Yönetimi
Gönderileri ve sayfaları da komut satırından yönetebilirsiniz.
Gönderi Listeleme
Tüm gönderileri listelemek için:
wp post list
Belirli bir gönderi türünü (örneğin, sayfalar) listelemek için:
wp post list --post_type=page
Gönderi Oluşturma
Yeni bir gönderi oluşturmak için:
wp post create --post_type=post --post_title="WP-CLI ile Yeni Gönderi" --post_content="Bu gönderi WP-CLI kullanılarak oluşturuldu." --post_status=publish --post_author=1
* --post_type: post veya page gibi gönderi türünü belirtir.
* --post_title: Gönderinin başlığı.
* --post_content: Gönderinin içeriği.
* --post_status: Gönderinin durumu (publish, draft, pending).
* --post_author: Gönderinin yazarının ID’si.
Gönderi Güncelleme
Mevcut bir gönderiyi güncellemek için:
wp post update --post_title="Güncellenmiş Başlık"
Gönderi Silme
Bir gönderiyi silmek için:
wp post delete
Çöp kutusuna göndermek yerine kalıcı olarak silmek için --force bayrağını kullanabilirsiniz.
Diğer Yönetim Komutları
WP-CLI’nin yetenekleri yukarıda bahsedilenlerle sınırlı değildir. İşte bazı diğer kullanışlı komutlar:
Önbellek Yönetimi
Eğer bir önbellekleme eklentisi kullanıyorsanız veya WordPress’in kendi nesne önbelleğini temizlemek istiyorsanız:
wp cache flush
Bu komut, tüm önbelleği temizler ve genellikle sitenin güncel içeriği göstermesini sağlar.
Cron Olayları
WordPress’in zamanlanmış görevlerini (cron jobs) yönetmek için:
* Tüm zamanlanmış olayları listeleme:
wp cron event list
* Belirli bir cron olayını çalıştırma:
wp cron event run
* WordPress’in dahili cron sistemini devre dışı bırakma (genellikle sunucu düzeyinde cron ile değiştirmek için):
wp option update disable_wp_cron 1
Bu komut, wp-config.php dosyasına define('DISABLE_WP_CRON', true); eklemekle eşdeğerdir.
Opsiyon Yönetimi
WordPress seçeneklerini (options) okumak, güncellemek veya silmek için:
* Bir seçeneğin değerini okuma:
wp option get blogname
* Bir seçeneğin değerini güncelleme:
wp option update blogdescription "Yeni site açıklaması"
* Bir seçeneği silme:
wp option delete my_custom_option
Gelişmiş Kullanım ve İpuçları
WP-CLI’nin gücü, sadece temel komutların ötesine geçer.
Uzak Sunucuda Kullanım (SSH ile)
WP-CLI’yi yerel makinenizden uzak bir sunucudaki WordPress sitesini yönetmek için kullanabilirsiniz. Bunun için sunucunuzda SSH erişiminiz olmalı ve WP-CLI sunucuda kurulu olmalıdır.
ssh user@your-server.com 'cd /path/to/wordpress/root && wp plugin update --all'
Bu komut, SSH aracılığıyla sunucuya bağlanır, WordPress kök dizinine gider ve tüm eklentileri günceller.
Çoklu Site Yönetimi (Multisite)
Eğer WordPress multisite kurulumunuz varsa, WP-CLI bunu da destekler. Komutlara --url= veya --network parametrelerini ekleyerek belirli bir siteyi veya tüm ağı hedefleyebilirsiniz.
* Belirli bir alt sitede eklentileri listeleme:
wp plugin list --url=http://alt-site.example.com
* Tüm ağdaki eklentileri listeleme:
wp plugin list --network
WP-CLI Paketleri (Packages)
WP-CLI’nin temel komutlarının ötesinde, topluluk tarafından geliştirilen ek komut setleri (paketler) mevcuttur. Bu paketler, WP-CLI’nin işlevselliğini genişletir.
* Paketleri listeleme: wp package list
* Bir paket kurma: wp package install
Örneğin, wp package install wp-cli/dist-archive paketi, WordPress dağıtım arşivleri oluşturmanıza olanak tanır.
Bash Scriptleri ile Otomasyon
WP-CLI’nin gerçek gücü, komutları Bash scriptlerine entegre ederek rutin görevleri otomatikleştirebilmenizde yatar.
Örnek bir yedekleme scripti:
#!/bin/bash
WordPress kök dizinine git
cd /var/www/html/wordpress
Yedekleme klasörünü oluştur (yoksa)
BACKUP_DIR="/home/user/wordpress_backups"
mkdir -p $BACKUP_DIR
Tarih damgası
DATE=$(date +%Y%m%d%H%M%S)
Veritabanını yedekle
wp db export $BACKUP_DIR/wordpress_db_$DATE.sql
Dosyaları sıkıştır
tar -czvf $BACKUP_DIR/wordpress_files_$DATE.tar.gz .
echo "Yedekleme tamamlandı: $BACKUP_DIR"
Bu script, WordPress dosyalarını ve veritabanını belirli bir dizine yedekler. Bu tür scriptleri cron işleri ile belirli aralıklarla otomatik olarak çalıştırabilirsiniz.
Hata Ayıklama
WP-CLI, hata ayıklama için de faydalı olabilir. --debug bayrağı, komutların daha ayrıntılı çıktı vermesini sağlar:
wp plugin update --all --debug
Bu, bir sorunla karşılaştığınızda neyin yanlış gittiğini anlamanıza yardımcı olabilir.
Güvenlik İpuçları
WP-CLI güçlü bir araçtır ve bu nedenle dikkatli kullanılmalıdır:
* SSH Güvenliği: Sunucunuza SSH ile erişirken güçlü parolalar veya anahtar tabanlı kimlik doğrulama kullanın.
* --allow-root Kullanımı: WP-CLI’yi root kullanıcı olarak çalıştırmak genellikle önerilmez. Gerekmedikçe --allow-root bayrağını kullanmaktan kaçının, çünkü bu potansiyel güvenlik riskleri oluşturabilir.
* Yedeklemeler: Önemli veritabanı veya dosya işlemleri yapmadan önce daima yedek alın.
* --dry-run Kullanımı: Özellikle wp search-replace gibi yıkıcı olabilecek komutlarda, değişiklikleri uygulamadan önce her zaman --dry-run bayrağını kullanarak ne olacağını önizleyin.
Sonuç
WP-CLI, WordPress geliştiricileri, sistem yöneticileri ve hatta ileri düzey kullanıcılar için vazgeçilmez bir araçtır. Komut satırının gücüyle, WordPress sitelerinizi yönetmek için harcadığınız zamanı ve çabayı önemli ölçüde azaltabilirsiniz. Kurulumu kolay, kullanımı esnek ve geniş bir komut setine sahip olan WP-CLI v2, sitenizin bakımını, geliştirmesini ve otomasyonunu bir sonraki seviyeye taşımanıza olanak tanır. Bu makaledeki komutları ve ipuçlarını kullanarak, WordPress sitelerinizi daha verimli, hızlı ve kontrol edilebilir bir şekilde yönetmeye başlayabilirsiniz. WP-CLI’nin sunduğu tüm olanakları keşfetmek için wp help komutunu kullanarak daha fazla bilgi edinmeye devam etmeyi unutmayın.