İçeriğe geç
İçindekiler
WordPress

WordPress Veritabanınızda Arama ve Değiştirme Çalıştırma

Makine çevirisi. İngilizce orijinal mevcuttur.

WordPress, mutlak URL'leri onlarca veritabanı tablosunda saklar; bu nedenle bir alan adı değişikliği veya SSL'e geçiş, eski adresleri yazılara, seçeneklere ve eklenti ayarlarına dağılmış halde bırakır: arama ve değiştirme, bunları güvenli şekilde temizlemenin yoludur. Bu rehber, KPanel'de bunu yapmanın desteklenen iki yolunu, yaygın bir üçüncü yöntemin neden verileri bozduğunu ve sonucun nasıl doğrulanacağını anlatır.

Ne Zaman Gerekir

  • SSL'i etkinleştirdikten sonra http:// adresinden https:// adresine geçerken.
  • Alan adını değiştirirken, örneğin old-brand.co.nz adresinden new-brand.co.nz adresine.
  • Staging'i canlı ortama gönderdikten sonra, staging ana bilgisayar adı hâlâ veritabanına işlenmiş durumdayken.
  • Eski bir varlık sunucusunu kullanımdan kaldırıp tüm görsel URL'lerini tek seferde yeniden yönlendirirken.
  • Eski bir telefon numarası veya üretimi durdurulmuş bir ürün adı gibi, birçok yazıya yayılmış toplu bir yazım hatasını düzeltirken.

Arama ve değiştirme, tüm tablolardaki satırları tek seferde yeniden yazar ve satır bazında geri alma yoktur. Önemsiz görünen bir değişiklik için bile, her seferinde başlamadan önce bir yedek alın. Aşağıda açıklanan yerleşik araçları kullandığınızda KPanel otomatik olarak bir yedek oluşturur, ancak komutu kendiniz çalıştırıyorsanız yedek sizin sorumluluğunuzdadır. Bkz. Yedek Alma.

Neden Doğrudan Bir SQL REPLACE Çalıştıramazsınız

Bu, WordPress veritabanı çalışmalarındaki en çok zarar veren tek hatadır; bu yüzden bir yöntem seçmeden önce bunu anlamaya değer.

WordPress eklenti ayarlarını, tema seçeneklerini ve bileşen (widget) verilerini PHP serileştirilmiş dizeleri olarak saklar. Serileştirilmiş bir dize, içindeki her değerin uzunluğunu şu şekilde kaydeder:

a:1:{s:3:"url";s:26:"http://old-domain.co.nz/x";}

Buradaki s:26, URL'nin 26 karakter uzunluğunda olduğunu söyler. http:// ifadesini düz bir SQL REPLACE() ile https:// olarak değiştirirseniz metin 27 karakter olur, ancak kayıtlı uzunluk hâlâ 26 olduğunu iddia eder. PHP bunun üzerine seçeneğin tamamını serileştirmeden çıkarmayı reddeder ve ayar sessizce boşa döner. Tema özelleştirici ayarları kaybolur, kaydırıcılar slaytlarını yitirir, eklenti lisanslarının kaydı kendiliğinden silinir.

KPanel'in çalıştırdığı WP-CLI search-replace komutu her değeri serileştirmeden çıkarır, içinde değiştirme yapar ve düzeltilmiş uzunluklarla yeniden serileştirir. Burada belgelenen tek yöntem olmasının nedeni budur.

Bir WordPress veritabanında asla UPDATE wp_options SET option_value = REPLACE(...) veya phpMyAdmin'deki eşdeğerini çalıştırmayın. Çalışmış gibi görünür, etkilenen satırları bildirir ve dokunduğu her serileştirilmiş ayarı sessizce yok eder. Bir yedeği geri yüklemekten başka bir onarım yolu yoktur.

Yöntem 1: Arama ve Değiştirme Kartı

Bu, neredeyse herkes için doğru seçimdir. Her WordPress planında kullanılabilir.

  1. KPanel'e giriş yapın ve sol kenar çubuğunda Web Siteleri öğesine tıklayın.
  2. Siteye tıklayın.
  3. WordPress sekmesini, ardından Hızlı İşlemler bölümünü açın.
  4. Ara ve Değiştir kartını bulun ve Yapılandır düğmesine tıklayın.
  5. Mevcut metni Bul (eski değer) alanına girin.
  6. Yeni metni Şununla değiştir alanına girin.
  7. Deneme çalıştırması (yalnızca önizleme, değişiklik yok) seçeneğini işaretli bırakın ve Önizle düğmesine tıklayın.

KPanel Hızlı İşlemler bölümündeki Arama ve Değiştirme kartı

Deneme çalıştırması kaç değiştirme yapılacağını bildirir ve sayıyı tabloya ve sütuna göre ayrıştırır; böylece değişikliği onaylamadan önce tam olarak nereye uygulanacağını görebilirsiniz.

Önizleme doğru göründüğünde:

  1. Deneme çalıştırması işaretini kaldırın.
  2. Çalıştır düğmesine tıklayın.
  3. İletişim kutusunu onaylayın.

Değiştirme başlamadan önce otomatik olarak tam bir yedek alınır ve çalıştırma, eklentilerin oluşturduğu tablolar dahil tüm tabloları kapsar.

Bulabildiğiniz en belirgin dizeyi arayın. old-domain.co.nz ifadesini değiştirmek mail.old-domain.co.nz ve staging.old-domain.co.nz adreslerini de yeniden yazar; bu nadiren istediğiniz şeydir. https://old-domain.co.nz örneğinde olduğu gibi şemayı dahil etmek eşleşmeyi dar tutar.

Yöntem 2: Konsoldan WP-CLI

Konsol, size aynı motoru bayraklar üzerinde daha fazla kontrolle sunar. Yönetilen planlarda görünen bölümlerden biridir; diğer planlarda sekme şeridi bunun yerine bir +8 on Managed bağlantısı gösterir.

Siteyi, ardından WordPress'i, ardından Konsol'u açın. İstem zaten wp ile başlar, bu yüzden komutun yalnızca geri kalanını yazın.

Önce önizleyin:

search-replace 'http://old-domain.co.nz' 'https://old-domain.co.nz' --all-tables --dry-run

Ardından gerçekten çalıştırın:

search-replace 'http://old-domain.co.nz' 'https://old-domain.co.nz' --all-tables

Konsol sizin için yedek almaz. Çalıştırma öncesi otomatik yedek yalnızca Yöntem 1'deki Ara ve Değiştir kartını kullandığınızda alınır. Komutu burada çalıştırıyorsanız, önce sitenin Yedeklemeler sayfasından kendiniz bir yedek alın.

Yararlı bayraklar:

BayrakNe yapar
--all-tablesYalnızca çekirdek WordPress tablolarını değil, eklentilerin oluşturduğu özel tabloları da dahil eder
--dry-runNeyin değişeceğini bildirir ve hiçbir şey yazmaz
--preciseDeğiştirme için SQL yerine PHP kullanır. Daha yavaştır, ancak zorlu serileştirilmiş yapıları işler
--skip-columns=guidYazı GUID'lerine dokunmaz (aşağıya bakın)
--report-changed-onlyÇıktıyı yalnızca gerçekten değişen tablolarla sınırlar

GUID'ler Hakkında Bir Not

Her WordPress yazısının bir guid sütunu vardır. Bir URL gibi görünse de bir bağlantı değil, bir tanımlayıcıdır ve akış okuyucuları bir öğeyi daha önce görüp görmediklerini anlamak için onu kullanır. Onu yeniden yazmak, akışınızdaki her yazının yeniymiş gibi tekrar görünmesine yol açabilir.

Alan adını kalıcı olarak değiştirip sıfırdan başlıyorsanız GUID'leri yeniden yazın. Aynı alan adında yalnızca HTTP'den HTTPS'e geçiyorsanız --skip-columns=guid ile bunları atlayın.

Alan Adı Değiştirme: Bunun Yerine Site URL Kartını Kullanın

Asıl amaç siteyi yeni bir alan adına taşımaksa arama ve değiştirmeyle başlamayın. Aynı Hızlı İşlemler bölümündeki Site URL'sini Değiştir kartı, siteurl ve home seçeneklerini günceller ve değiştirmeyi tek bir işlemde, doğru sırayla tüm tablolarda çalıştırır. Bunu ters sırayla yapmak, WordPress'in kendi yönetici panelini yükleyemez hale gelmesine neden olabilir.

Değiştirmeden Sonra

İşi bitmiş saymadan önce bu listeyi tamamlayın.

  1. Önbelleği temizleyin. Hızlı İşlemler bölümünde Önbelleği Temizle işlemini çalıştırın. Site tam sayfa önbelleğini kullanıyorsa, onu WordPress, ardından Önbellekleme altından temizleyin.
  2. Yeniden yazma kurallarını temizleyin. Aynı bölümde Yeniden Yazma Kurallarını Temizle işlemini çalıştırın veya wp-admin'de Ayarlar, ardından Kalıcı Bağlantılar sayfasını açın ve hiçbir şeyi değiştirmeden Değişiklikleri Kaydet düğmesine tıklayın.
  3. Site CDN üzerindeyse CDN'i temizleyin; bunu Performans, ardından Kapsule CDN altından yapın. Bkz. Kapsule CDN Önbelleğini Temizleme.
  4. Tarayıcı önbelleğinizin sizi yanıltmaması için siteyi gizli bir pencerede yükleyin.
  5. Asma kilidi kontrol edin. SSL'e geçişten sonra asma kilidin olmaması veya uyarı göstermesi, geride URL'ler kaldığı anlamına gelir: Karışık İçerik Uyarılarını Düzeltme.
  6. Hassas sayfalara tek tek göz atın. Ana sayfa kaydırıcıları, başlıktaki logo, bir sayfa oluşturucuyla yapılmış her sayfa ve bir mağazadaki ödeme sayfası. Serileştirilmiş seçeneklerde bulunan URL'ler bunlardadır.
  7. Varsa önbellekleme eklentisini kendi ayarlar ekranından temizleyin.

Sorun Giderme

Deneme çalıştırması sıfır değiştirme bildiriyor. Dize, veritabanında tam olarak bu biçimde bulunmuyor. Sondaki eğik çizgiyi, www. önekini veya şemayı kontrol edin. Dizenin gerçekten orada olduğunu doğrulamak için önce yalnızca çıplak ana bilgisayar adını aramayı deneyin.

Alan adı değişikliğinden sonra görseller bozuk. Medya URL'leri wp_posts ve wp_postmeta içinde bulunur ve --all-tables tarafından yakalanır, ancak bir CDN veya görsel optimizasyon eklentisi kendi yeniden yazılmış kopyalarını önbellekte tutuyor olabilir. CDN'i ve eklentinin önbelleğini temizleyin, ardından sayfayı yeniden yükleyin.

Değiştirmeden sonra ayarlar kayboldu. Bu serileştirme sorunudur ve değişikliğin buradaki araçlar yerine ham SQL ile yapıldığı anlamına gelir. Çalıştırmadan önce alınan yedeği geri yükleyin: Bir Yedekten Geri Yükleme.

Staging URL'leri geri gelmeye devam ediyor. Bir şey onları yeniden dolduruyor; bu genellikle zamanlanmış bir gönderim veya önbelleğe alınmış bir seçenektir. Staging Kullanımı: Gönderme ve Çekme makalesindeki iş akışını kontrol edin ve gönderim yaparken URL'leri Yeniden Yaz seçeneğinin işaretli olduğundan emin olun.

Bu yardımcı oldu mu?

Yapay zeka mısınız? Bu sayfayı Markdown olarak okuyun

İlgili makaleler

WordPress KurulumuWordPress, dünyada en yaygın kullanılan web sitesi platformudur ve KapsuleHost kurulumu otomatikleştirir.…WordPress: Nereden BaşlanırWordPress için KapsuleHost'un yaptıkları, sizin kendiniz yapmaya devam ettikleriniz ve her iş için hangi rehberi okumanız gerektiği.…WordPress Otomatik GüncellemeleriOtomatik güncellemeler, WordPress çekirdeğini, eklentileri ve temaları siz sürüm notlarını takip etmeden güncel tutar ve bunu güvenli biçimde yapar: her…WooCommerce Mağazası için Ödeme Ağ GeçitleriThe Payments sekmesi, WooCommerce mağazanız için kullanılabilir ödeme ağ geçitlerini listeler, hangilerinin kurulu ve hangilerinin etkin olduğunu gösterir ve…

Hâlâ takıldınız mı?

Hesabınızı bilen Kora'ya sorun ya da ekibimizle iletişime geçin.

Bize UlaşınDesteğe e-posta gönder