WordPress

    WP-CLI ile Komut Satirindan WordPress Yonetimi

    WP-CLI ile komut satirindan hizli WordPress yonetimi

    12 dk okuma Güncellendi: 10 Temmuz 2026

    WordPress'i yıllardır yönetiyorsanız, panelin belli işlerde yavaşlattığını fark etmişsinizdir. Otuz sitede aynı eklentiyi güncellemek, taşınmış bir sitedeki eski alan adını binlerce satırda değiştirmek ya da bozuk bir kurulumu kurtarmak için önce giriş yapmayı denemek gerçekten zaman kaybıdır. WP-CLI (WordPress Command Line Interface) tam da bu noktada devreye girer: WordPress'in bütün yönetim işlemlerini tarayıcıya hiç dokunmadan, doğrudan komut satırından yapmanızı sağlayan resmî bir araçtır. Eklenti kurmaktan çekirdeği güncellemeye, kullanıcı oluşturmaktan veritabanı yedeği almaya kadar wp-admin'de tıklayarak yaptığınız hemen her şeyin bir komut karşılığı vardır.

    Bu rehberde WP-CLI'nin ne olduğunu, neden kıdemli yöneticilerin vazgeçilmezi haline geldiğini ve günlük hayatta en çok işinize yarayacak komutları gerçek örneklerle anlatacağım. Amacım size ezberletmek değil; komut satırının panelden neden daha hızlı, daha güvenilir ve otomasyona daha uygun olduğunu göstererek kendi iş akışınızı kurmanıza yardımcı olmak. Sunucunuza SSH ile bağlanabildiğiniz her ortamda bu bilgiler doğrudan işe yarar.

    WP-CLI Nedir ve Neden Zaman Kazandırır#

    WP-CLI, PHP ile yazılmış tek dosyalık bir araçtır. Sunucuya kurulduktan sonra wp komutuyla çağrılır ve WordPress dosyalarının bulunduğu dizinde çalışarak veritabanına ve çekirdeğe doğrudan erişir. Yani arka planda gerçek WordPress fonksiyonlarını çağırır; bir eklentiyi wp plugin install ile kurduğunuzda panelden kurmuşsunuz gibi aynı kancalar (hooks) tetiklenir, aynı doğrulamalar çalışır. Bu yüzden WP-CLI "hile" değil, resmî ve güvenli bir yönetim yoludur.

    Panelin en büyük dezavantajı tekrarlı işlerdir. Bir eklentiyi güncellemek için giriş yapmak, menüde gezinmek, güncelle butonuna basmak ve sonucu beklemek gerekir. Aynı işi komut satırında wp plugin update --all ile bir saniyede yaparsınız. Fark tek bir sitede küçük görünebilir; ama yönettiğiniz on, elli ya da yüz sitede aynı komutu bir for döngüsüyle çalıştırdığınızda kazandığınız süre saatlerle ölçülür.

    İkinci büyük avantaj kurtarma senaryolarıdır. Bozuk bir eklenti sitenizi tamamen çökerttiğinde wp-admin'e giremezsiniz. Panel açılmadığı için sorunu panelden çözemezsiniz. Oysa WP-CLI dosya sistemi üzerinden çalıştığı için giriş ekranına ihtiyaç duymaz; suçlu eklentiyi wp plugin deactivate ile devre dışı bırakır, siteyi anında ayağa kaldırırsınız. Bu tek özellik bile aracı öğrenmeye değer kılar.

    # WP-CLI kurulumu (Linux/sunucu)
    curl -O https://raw.githubusercontent.com/wp-cli/wp-cli/v2.11.0/utils/wp-cli.phar
    php wp-cli.phar --info
    chmod +x wp-cli.phar
    sudo mv wp-cli.phar /usr/local/bin/wp
    
    # Kurulumu dogrula
    wp --info
    

    Kurulumdan sonra WordPress dizinine (wp-config.php'nin bulunduğu klasöre) geçip komutları oradan çalıştırırsınız. Farklı bir dizinden çalışmak isterseniz --path bayrağını kullanabilirsiniz: wp plugin list --path=/var/www/site1.

    Eklenti Yonetimi: wp plugin#

    Eklenti işlemleri WP-CLI'nin en sık kullanılan tarafıdır. Bir eklentiyi kurmak, aktifleştirmek, güncellemek, silmek ve durumunu görmek tek satırlık komutlarla mümkündür. Eklentinin "slug"ı olarak WordPress.org dizinindeki URL adını kullanırsınız; örneğin wordpress.org/plugins/wordpress-seo/ adresindeki eklentinin slug'ı wordpress-seo'dur.

    # Kurulu tum eklentileri ve durumlarini listele
    wp plugin list
    
    # Eklenti kur ve ayni anda aktif et
    wp plugin install wordpress-seo --activate
    
    # Belirli bir surumu kur (uyumluluk sorununda ise yarar)
    wp plugin install woocommerce --version=8.5.2
    
    # Tek eklenti aktif/pasif
    wp plugin activate contact-form-7
    wp plugin deactivate contact-form-7
    
    # Butun eklentileri guncelle
    wp plugin update --all
    
    # Guncelleme gerektirenleri once gormek isterseniz
    wp plugin list --update=available
    
    # Eklentiyi tamamen kaldir
    wp plugin delete akismet
    

    Toplu güncellemelerde ölçülü olmak isterseniz önce hangi eklentilerin güncelleme beklediğini wp plugin list --update=available ile görün, ardından sadece güvendiklerinizi tek tek güncelleyin. Üretim ortamında --all ile toptan güncelleme yapmadan önce mutlaka yedek almanız gerektiğini unutmayın; nasıl yapılacağını WordPress yedekleme rehberimizde ayrıntılı anlattık.

    Sorun çıkaran bir eklentiyi hızlıca izole etmek için hepsini kapatıp tek tek açmak da çok pratiktir:

    # Butun eklentileri kapat, sorunu izole et
    wp plugin deactivate --all
    
    # Suphelileri birer birer ac
    wp plugin activate elementor
    

    Tema Yonetimi: wp theme#

    Tema komutları eklenti komutlarıyla neredeyse birebir aynı mantıkta çalışır. Kurabilir, aktif edebilir, güncelleyebilir ve silebilirsiniz. Aktif temayı doğrudan silemezsiniz; önce başka bir temaya geçmeniz gerekir. Bu, kazara sitenizin görünümünü boşa düşürmenizi engelleyen faydalı bir korumadır.

    # Kurulu temalari listele
    wp theme list
    
    # Yeni tema kur ve etkinlestir
    wp theme install astra --activate
    
    # Temayi degistir (gecici olarak varsayilana don)
    wp theme activate twentytwentyfour
    
    # Tum temalari guncelle
    wp theme update --all
    
    # Kullanilmayan temayi sil (aktif tema silinemez)
    wp theme delete twentytwentythree
    

    Bir tema güncellemesinden sonra site görünümünde sorun olup olmadığını kontrol etmek için wp theme list çıktısındaki sürüm numaralarına bakmanız yeterlidir. Alt tema (child theme) kullanıyorsanız güncellemenin ana temayı etkileyip özelleştirmelerinizi bozmadığından emin olun; alt tema kullanmanın en önemli sebebi zaten budur.

    Cekirdek Guncelleme: wp core#

    WordPress çekirdeğini (core) güncellemek en kritik işlemlerden biridir çünkü ters giderse tüm site etkilenir. WP-CLI burada hem güncelleme hem de doğrulama araçları sunar. Mevcut sürümü görmek, güncellemek ve dosya bütünlüğünü kontrol etmek ayrı komutlarla yapılır.

    # Mevcut WordPress surumunu goster
    wp core version
    
    # Cekirdegi en son surume guncelle
    wp core update
    
    # Guncelleme sonrasi veritabani semasini da guncelle (unutulmamali!)
    wp core update-db
    
    # Belirli bir surume gec (nadir; uyumluluk icin)
    wp core update --version=6.5.5 --force
    
    # Cekirdek dosyalarinin bozulup bozulmadigini dogrula
    wp core verify-checksums
    

    wp core update-db komutu sık unutulur ama önemlidir: çekirdek dosyaları yenilendiğinde veritabanı şemasının da güncellenmesi gerekir. Panelden güncelleme yaptığınızda WordPress bunu otomatik yapar; komut satırında ise ayrıca çalıştırmanız gerekir.

    verify-checksums özellikle güvenlik açısından değerlidir. Bu komut, kurulu çekirdek dosyalarını WordPress.org'daki resmî sürümle karşılaştırır; herhangi bir dosya değiştirilmişse (örneğin bir zararlı yazılım enjekte edilmişse) size bildirir. Hacklendiğinden şüphelendiğiniz bir siteyi ilk teşhis ettiğim komutlardan biridir. Konu güvenlikse WordPress'in önüne bir WAF koymayı da düşünmenizi öneririm.

    Kullanici Islemleri: wp user#

    Kullanıcı yönetimi, özellikle giriş yapamadığınız durumlarda hayat kurtarır. Yönetici parolasını unuttuysanız ya da e-posta erişiminiz olmadığı için sıfırlama linki alamıyorsanız, WP-CLI ile saniyeler içinde yeni bir yönetici oluşturur veya mevcut parolayı sıfırlarsınız.

    # Kullanicilari listele
    wp user list
    
    # Yeni yonetici olustur
    wp user create admin2 [email protected] --role=administrator --user_pass=GucluBirParola123
    
    # Mevcut kullanicinin parolasini sifirla
    wp user update 1 --user_pass=YeniGucluParola456
    
    # Kullaniciya rol ver / rolunu degistir
    wp user set-role editor_kullanici editor
    
    # Kullaniciyi sil ve iceriklerini baska kullaniciya devret
    wp user delete 5 --reassign=1
    

    Kullanıcıyı silerken --reassign bayrağı çok önemlidir. Bunu belirtmezseniz o kullanıcının yazdığı tüm içerikler de silinir. --reassign=1 diyerek içerikleri ID'si 1 olan yöneticiye devreder, hiçbir yazınız kaybolmaz. Ekip yönetiyorsanız bu detayı asla atlamayın.

    Veritabani Islemleri: wp db#

    Veritabanı komutları, yedekleme ve taşıma işlerinin belkemiğidir. wp db export ile tüm veritabanını tek bir SQL dosyasına dökebilir, wp db import ile geri yükleyebilirsiniz. Bu iki komut, phpMyAdmin'de dakikalarca uğraşacağınız işi tek satıra indirir.

    # Tum veritabanini SQL dosyasina aktar (yedek)
    wp db export yedek-$(date +%Y%m%d).sql
    
    # Yedegi geri yukle
    wp db import yedek-20260710.sql
    
    # Veritabani boyutunu ve tablolari gor
    wp db size --tables
    
    # Veritabani baglantisini test et
    wp db check
    
    # Gereksiz sisen tablolari optimize et
    wp db optimize
    

    Otomatik günlük yedek için wp db export komutunu bir cron görevine bağlamak çok yaygın bir yöntemdir:

    # Her gece 03:00'te veritabani yedegi al, 7 gunden eskiyi sil
    0 3 * * * cd /var/www/site && wp db export /yedekler/db-$(date +\%Y\%m\%d).sql && find /yedekler -name "db-*.sql" -mtime +7 -delete
    

    Bu tek satır, elle yedek almayı tamamen ortadan kaldırır. Yine de veritabanı yedeği tek başına yeterli değildir; dosyaların (yükledikleriniz, eklentiler, temalar) da yedeklenmesi gerekir. Kapsamlı bir strateji için yedekleme hizmetimize göz atabilirsiniz.

    Alan Adi Degistirme: wp search-replace#

    Bir siteyi taşıdığınızda ya da alan adını değiştirdiğinizde, veritabanının içinde eski adres binlerce yerde geçer. Yazı içeriklerinde, ayarlarda, serileştirilmiş (serialized) verilerde... Bunları elle bulup değiştirmek imkânsıza yakındır ve serileştirilmiş verilerde basit bir "bul-değiştir" veriyi bozar. WP-CLI'nin search-replace komutu bu sorunu serileştirilmiş verileri de doğru işleyerek çözer.

    # Once deneme (--dry-run) yaparak neyin degisecegini gor
    wp search-replace 'https://eski-adres.com' 'https://yeni-adres.com' --dry-run
    
    # Gercek degisimi uygula (tum tablolarda)
    wp search-replace 'https://eski-adres.com' 'https://yeni-adres.com'
    
    # http'den https'e gecerken
    wp search-replace 'http://site.com' 'https://site.com'
    
    # Belirli tablolarda calistirmak isterseniz
    wp search-replace 'eski' 'yeni' wp_posts wp_postmeta
    

    --dry-run bayrağını her zaman önce çalıştırın. Bu bayrak hiçbir şeyi değiştirmez; sadece kaç satırın, hangi tablolarda etkileneceğini gösterir. Sonucu gördükten sonra bayrağı kaldırıp gerçek değişimi yaparsınız. Bu alışkanlık, yanlış bir arama deseniyle veriyi bozmanızı engeller. Site taşıma sürecinin tamamını profesyonel yaptırmak isterseniz site taşıma hizmetimiz tam bu iş içindir.

    Aşağıdaki tablo, taşıma sırasında sık karşılaşılan senaryoları özetliyor:

    SenaryoArananYeni Deger
    Alan adi degisimieski.comyeni.com
    SSL gecisihttp://site.comhttps://site.com
    www ekleme/kaldirmahttps://www.site.comhttps://site.com
    Alt dizinden koke tasimasite.com/blogsite.com

    Ayarlar ve Otomasyon: wp option ve Toplu Islemler#

    wp option komutu, WordPress'in wp_options tablosundaki tüm ayarları okumanızı ve değiştirmenizi sağlar. Site başlığından ana sayfa ayarına, aktif eklenti listesinden zaman dilimine kadar her şey buradadır. Bir ayarı panel açmadan hızlıca değiştirmek ya da bir betikle otomatik ayarlamak için idealdir.

    # Bir ayari oku
    wp option get siteurl
    wp option get blogname
    
    # Ayari degistir
    wp option update blogname "Yeni Site Adi"
    wp option update blogdescription "Sunucu ve hosting rehberi"
    
    # Arama motorlarina kapatma/acma (bakim/gelistirme sirasinda)
    wp option update blog_public 0
    
    # Tum ayarlari listele (uzun cikti)
    wp option list
    

    WP-CLI'nin asıl gücü, bu komutları kabuk (shell) betikleriyle birleştirdiğinizde ortaya çıkar. Birden fazla siteyi tek döngüyle yönetmek, yöneticinin en çok sevdiği senaryodur:

    #!/bin/bash
    # Tum sitelerde eklentileri guncelle ve yedek al
    SITELER="/var/www/site1 /var/www/site2 /var/www/site3"
    
    for dizin in $SITELER; do
      echo "==> Isleniyor: $dizin"
      wp --path="$dizin" db export "$dizin/yedek-$(date +%Y%m%d).sql"
      wp --path="$dizin" plugin update --all
      wp --path="$dizin" core update-db
    done
    

    Bu betiği bir cron görevine bağladığınızda, onlarca sitenin bakımı elinizi hiç sürmeden yapılır. WooCommerce ürünleri toplu içe aktarmak, eski yorumları temizlemek, belirli bir eklentiyi tüm sitelerde tek seferde devre dışı bırakmak gibi işler de aynı mantıkla otomatikleşir. Düzenli WordPress bakımını dışarıdan yönettirmek isterseniz WordPress bakım hizmetimiz tam olarak bu tür otomasyonları sizin için kurar.

    WP-CLI'yi çalıştırabilmek için sunucunuza SSH erişiminizin olması gerektiğini hatırlatmakta fayda var. Paylaşımlı hosting paketlerinin bir kısmında SSH açıktır; VDS veya sanal sunucu kullanıyorsanız tam kontrol sizdedir. Uygun bir altyapı için hosting ya da VDS sunucu seçeneklerini inceleyebilirsiniz. Sıfırdan WordPress kurmayı düşünüyorsanız WordPress kurulum rehberimiz size başlangıç için iyi bir yol haritası çizer.

    Panel Kullanimi ile WP-CLI Karsilastirmasi#

    Hangi işin panelde, hangisinin komut satırında daha verimli olduğunu bilmek iş akışınızı hızlandırır. Aşağıdaki tablo, günlük görevlerde iki yöntemi karşılaştırıyor. WP-CLI'nin özellikle tekrarlı, toplu ve kurtarma işlerinde nasıl öne çıktığını görebilirsiniz.

    IslemPanel (wp-admin)WP-CLI
    Tek eklenti kurmaKolay, gorselTek komut, cok hizli
    50 sitede toplu guncellemeCok yavas, tekrarliTek dongu, saniyeler
    Site cokunce mudahaleImkansiz (giris yok)Sorunsuz calisir
    Alan adi degistirmeRiskli/eksiksearch-replace ile tam
    Otomatik yedek (cron)Mumkun degilDogal ve basit
    Ogrenme egrisiDusukOrta

    Görüldüğü gibi panel, görsel geri bildirim istediğiniz tekil işler için hâlâ rahat bir seçenektir. Ama işin ölçeği büyüdükçe, otomasyon gerektikçe ve kriz anında müdahale gerektikçe WP-CLI tartışmasız üstündür. İki yöntemi birbirinin alternatifi değil, tamamlayıcısı olarak görmek en doğrusudur.

    Sıkça Sorulan Sorular#

    WP-CLI kullanmak icin ne gerekiyor?#

    WP-CLI'yi çalıştırmak için sunucunuza SSH erişimi ve PHP'nin kurulu olması gerekir. Aracı sunucuya bir kez kurduktan sonra WordPress dosyalarının bulunduğu dizinde wp komutuyla çağırırsınız. Paylaşımlı hosting paketlerinin bir kısmında SSH açıktır; VDS, sanal veya dedike sunucularda ise tam erişim zaten sizde olduğundan hiçbir kısıt yaşamazsınız. Kurulum için wp-cli.phar dosyasını indirip çalıştırılabilir yapmanız yeterlidir.

    WP-CLI komutlari sitemi bozabilir mi?#

    Yanlış kullanılan her güçlü aracın olduğu gibi WP-CLI'nin de veriyi etkileme potansiyeli vardır, ama doğru alışkanlıklarla bu risk çok düşüktür. Özellikle search-replace gibi veritabanını toplu değiştiren komutları önce --dry-run bayrağıyla çalıştırıp sonucu görmek en önemli güvenlik önlemidir. Ayrıca çekirdek güncellemesi, toplu eklenti güncellemesi ya da alan adı değişimi gibi kritik işlemlerden önce mutlaka wp db export ile yedek almalısınız. Bu iki alışkanlıkla neredeyse tüm riskleri ortadan kaldırırsınız.

    wp-admin'e giremiyorum, WP-CLI yardimci olur mu?#

    Kesinlikle evet ve bu, aracın en değerli yönlerinden biridir. WP-CLI dosya sistemi üzerinden çalıştığı için giriş ekranına ihtiyaç duymaz. Sitenizi çökerten bir eklentiyi wp plugin deactivate ile kapatabilir, parolanızı wp user update ile sıfırlayabilir ya da bozuk çekirdek dosyalarını wp core verify-checksums ile teşhis edip yeniden yükleyebilirsiniz. Panel açılmadığı için çözülemeyen birçok sorun, komut satırından saniyeler içinde hallolur.

    Birden fazla WordPress sitesini tek komutla yonetebilir miyim?#

    Evet ve WP-CLI'yi öğrenmenin en büyük getirilerinden biri budur. --path bayrağıyla her komuta hangi sitede çalışacağını belirtebilir, bunu bir kabuk döngüsü içine koyarak onlarca siteyi tek seferde işleyebilirsiniz. Örneğin bir for döngüsüyle tüm sitelerin eklentilerini güncelleyip veritabanı yedeklerini alan bir betik yazar, bunu cron'a bağlarsınız. Ajanslar ve çok sayıda site yöneten yöneticiler için bu, saatlerce süren işi dakikalara indirir.

    WP-CLI ile alan adi degistirmek neden phpMyAdmin'den daha guvenli?#

    WordPress bazı verileri "serialized" (serileştirilmiş) formatta saklar; bu formatta metnin uzunluğu da veriyle birlikte kaydedilir. phpMyAdmin'de basit bir bul-değiştir yaptığınızda metin uzunluğu değişir ama kaydedilmiş uzunluk bilgisi eski kalır, bu da veriyi bozar ve widget ayarları gibi şeylerin kaybolmasına yol açar. wp search-replace komutu ise serileştirilmiş verileri tanır, uzunlukları yeniden hesaplar ve değişimi güvenle yapar. Bu yüzden alan adı geçişlerinde her zaman WP-CLI tercih edilmelidir.

    WP-CLI'yi otomatik yedek ve bakim icin cron'a nasil baglarim?#

    Bir cron görevi tanımlayıp içine WP-CLI komutlarınızı yazmanız yeterlidir. Örneğin her gece cd /var/www/site && wp db export /yedekler/db-$(date +\%Y\%m\%d).sql satırıyla otomatik veritabanı yedeği alabilir, aynı görevin devamına wp plugin update --all ekleyerek eklentileri de güncel tutabilirsiniz. Cron'da tarih değişkenlerindeki yüzde işaretlerini \% şeklinde kaçırmayı (escape) unutmayın. Bu yaklaşım, elle yapılan tekrarlı bakım işlerini tamamen ortadan kaldırır.

    Kapanış#

    WP-CLI, WordPress yönetimini tıklama tabanlı ve tek tek yapılan bir işten, hızlı ve otomatikleştirilebilir bir sürece dönüştürür. Eklenti ve tema yönetiminden çekirdek güncellemesine, kullanıcı işlemlerinden veritabanı yedeğine ve alan adı değişimine kadar günlük işlerinizin neredeyse tamamını tek satırlık komutlarla halledebilir; ölçek büyüdükçe kabuk betikleri ve cron görevleriyle bu işleri tamamen otomatikleştirebilirsiniz. Öğrenme eğrisi ortalama olsa da kazandırdığı zaman ve kriz anındaki müdahale gücü, harcadığınız çabanın kat kat karşılığını verir.

    Tüm bu gücü kullanabilmenin ön koşulu SSH erişimine ve esnek bir altyapıya sahip olmaktır. WordPress projeleriniz için SSH destekli, hızlı ve güvenli bir zemin arıyorsanız Clou.TR'nin WordPress hosting paketlerini ya da tam kontrol isteyenler için VDS sunucu çözümlerini inceleyebilirsiniz. Kurulumdan bakıma kadar destek almak isterseniz WordPress bakım hizmetimiz ve sunucu yönetimi hizmetimiz her adımda yanınızda olur. Doğru araçlar ve doğru altyapıyla WordPress yönetimi bir yüke değil, keyifli ve verimli bir işe dönüşür.

    wordpresswp-clibakim

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.