WordPress

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

WordPress stores absolute URLs in dozens of database tables, so a domain change or an SSL move leaves old addresses scattered through posts, options and plugin settings: a search and replace is how…

WordPress, veritabanında düzinelerce tabloda mutlak URL'ler depoladığından, bir alan adı değişikliği veya SSL taşıması, eski adresleri yazılar, seçenekler ve eklenti ayarlarında dağıtılmış halde bırakır: bir ara ve değiştir işlemi bunları güvenli bir şekilde temizlemenin yoludur. Bu kılavuz KPanel'de bunu yapmak için desteklenen iki yolu, yaygın bir üçüncü yöntemin neden verileri bozduğunu ve sonucu nasıl doğrulayacağınızı kapsar.

Ne Zaman Bir Taneye İhtiyacınız Var

  • http:// adresinden https:// adresine SSL etkinleştirdikten sonra geçiş yapma.
  • Alan adını değiştirme, örneğin old-brand.co.nz adresinden new-brand.co.nz adresine.
  • Staging'i üretime gönderdikten sonra, staging hostname'i hala veritabanında gömülü olduğunda.
  • Eski bir varlık sunucusunun devre dışı bırakılması ve her görüntü URL'sinin aynı anda yeniden yönlendirilmesi.
  • Birçok yazı genelinde toplu bir yazım hatasını düzeltme, örneğin eski bir telefon numarası veya devre dışı bırakılan bir ürün adı.

Bir ara ve değiştir işlemi bir kerede her tablo genelinde satırları yeniden yazar ve satır başına geri alma yoktur. Başlamadan önce bir yedekleme alın, her zaman, hatta önemsiz görünen bir değişiklik için bile. KPanel, aşağıda açıklanan yerleşik araçları kullandığınızda otomatik olarak bir tane oluşturur, ancak komutu kendiniz çalıştırıyorsanız bundan siz sorumlusunuz. Bkz. Yedekleme Alma.

Neden Sadece SQL REPLACE Çalıştıramazsınız

Bu, WordPress veritabanı çalışmasında tek en zarar verici hatadır, bu nedenle bir yöntem seçmeden önce bunu anlamaya değer.

WordPress, eklenti ayarlarını, tema seçeneklerini ve widget verilerini PHP serileştirilmiş dizeler olarak depolar. Serileştirilmiş bir dize, içindeki her değerin uzunluğunu kaydeder, şöyle:

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

O s:26, URL'nin 26 karakter uzunluğunda olduğunu söyler. http:// adresini düz bir SQL REPLACE() kullanarak https:// ile değiştirin ve metin 27 karakter olur, ancak depolanan uzunluk hala 26'yı iddia eder. PHP daha sonra tüm seçeneği seriden çıkarmayı reddeder ve ayar sessizce boş olarak sıfırlanır. Tema özelleştirici ayarları kaybolur, kaydırıcılar slaytlarını kaybeder, eklenti lisansları kayıt olmak üzeredir.

KPanel'in çalıştırdığı WP-CLI ara ve değiştir işlemi, her değeri seriden çıkarır, içinde değiştiring ve düzeltilmiş uzunluklarla yeniden seri hale getirir. Bu, yalnızca burada belgelenen yöntemin neden bu olduğudur.

Hiçbir zaman UPDATE wp_options SET option_value = REPLACE(...) çalıştırmayın veya phpMyAdmin'deki eşdeğeri bir WordPress veritabanına karşı kullanmayın. Çalıştığı görünür, etkilenen satırları bildirir ve sessizce dokunduğu her serileştirilmiş ayarı yok eder. Yedekleme geri yükleme dışında tamiri yoktur.

Yöntem 1: Ara ve Değiştir Kartı

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

  1. KPanel oturumunu açın ve sol kenar çubuğunda Websites (Web Siteleri) öğesine tıklayın.
  2. Siteye tıklayın.
  3. WordPress sekmesini açın, ardından Quick Actions (Hızlı İşlemler) bölümünü açın.
  4. Search & Replace (Ara ve Değiştir) kartını bulun ve Configure (Yapılandır) öğesine tıklayın.
  5. Find (old value) (Bul - eski değer) alanına mevcut metni girin.
  6. Replace with (Şu ile değiştir) alanına yeni metni girin.
  7. Dry run (preview only, no changes) (Kuru çalıştırma - yalnızca önizleme, değişiklik yok) seçeneğini işaretli bırakın ve Preview (Önizleme) öğesine tıklayın.

KPanel Hızlı İşlemlerinde Ara ve Değiştir kartı

Kuru çalıştırma, kaç değiştirmenin yapılacağını bildirir ve sayıyı tablo ve sütuna göre parçalara ayırır, böylece değişikliğin tam olarak nereye düşeceğini bağlanmadan önce görebilirsiniz.

Önizleme doğru görünüyorsa:

  1. Dry run seçeneğinin işaretini kaldırın.
  2. Run (Çalıştır) öğesine tıklayın.
  3. İletişim kutusunu onaylayın.

Değiştirme başlamadan önce otomatik olarak tam bir yedekleme alınır ve çalıştırma eklentiler tarafından oluşturulan olanlar da dahil olmak üzere tüm tabloları kapsar.

Yapabileceğiniz en spesifik dizeyi arayın. old-domain.co.nz yerine koymak, mail.old-domain.co.nz ve staging.old-domain.co.nz yazılanları da yeniden yazar, bu nadiren istediğiniz şeydir. Şemayı dahil etmek, https://old-domain.co.nz gibi, eşleşmeyi sıkı tutar.

Yöntem 2: Konsoldan WP-CLI

Konsol size aynı motoru daha fazla bayrak kontrolü ile verir. Yönetilen planlarda görünen bölümlerden birisidir; diğer planlarda sekme şeridi bunun yerine +8 on Managed (Yönetilen'de +8) bağlantısını gösterir.

Siteyi açın, ardından WordPress, ardından Console (Konsol). İstem zaten wp ile başlar, bu nedenle komutun 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 bir yedekleme almaz. Otomatik ön çalıştırma yedeklemesi, yalnızca Yöntem 1'de Ara ve Değiştir kartını kullandığınızda gerçekleşir. Komutu burada çalıştırırsanız, ilk olarak sitenin Backups (Yedeklemeler) sekmesinden kendiniz bir yedekleme alın.

Yararlı bayraklar:

BayrakNe yaptığı
--all-tablesSadece temel WordPress'in değil, eklentiler tarafından oluşturulan özel tabloları da içerir
--dry-runNeyin değişeceğini bildirir ve hiçbir şey yazmaz
--preciseDeğiştirme için SQL yerine PHP kullanır. Daha yavaş, ancak garip serileştirilmiş yapıları işler
--skip-columns=guidYazı GUID'lerini yalnız bırakır (aşağıya bakınız)
--report-changed-onlyÇıktıyı gerçekten değişen tablolara kırpar

GUID'ler Hakkında Bir Not

Her WordPress yazısının bir guid sütunu vardır. URL'ye benziyor olsa da, bir bağlantı değil bir tanımlayıcıdır ve beslenme okuyucuları bunu zaten görmüş olup olmadıklarını söylemek için kullanırlar. Yeniden yazmak, beslemenizde her yazının yeni olarak yeniden görünmesini sağlayabilir.

Kalıcı olarak alan adını değiştiriyorsanız ve yeni başlıyorsanız GUID'leri yeniden yazın. Aynı alan adında yalnızca HTTP'den HTTPS'ye taşıyorsanız --skip-columns=guid ile atlayın.

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

Bütün nokta siteyi yeni bir alan adına taşımaksa, ara ve değiştir ile başlamayın. Aynı Quick Actions (Hızlı İşlemler) bölümünde bulunan Change Site URL (Site URL'sini Değiştir) kartı, siteurl ve home seçeneklerini günceller ve bir işlemde, doğru sırayla tüm tablolar arasında değiştirmeyi çalıştırır. Diğer yolu yapmak WordPress'in kendi yönetim panelini yükleyememesini bırakabilir.

Değiştirmeden Sonra

Bittiğini söylemeden önce bu listeyi gözden geçirin.

  1. Önbelleği temizleyin. Quick Actions (Hızlı İşlemler) bölümünde Flush Cache (Önbelleği Temizle) öğesini çalıştırın. Site tam sayfa önbelleğine sahipse, WordPress, ardından Caching (Önbelleğe Alma) altından temizleyin.
  2. Yeniden yazma kurallarını temizleyin. Aynı bölümde Flush Rewrites (Yeniden Yazmaları Temizle) öğesini çalıştırın veya wp-admin'de Settings (Ayarlar), ardından Permalinks (Kalıcı Bağlantılar) öğesini açın ve hiçbir şeyi değiştirmeden Save Changes (Değişiklikleri Kaydet) öğesine tıklayın.
  3. Site üzerindeyse CDN'yi temizleyin, Performance (Performans) altından, ardından Kapsule CDN. Bkz. CDN Önbelleğini Temizleme.
  4. Siteyi özel bir pencerede yükleyin, böylece tarayıcı önbelleğiniz sizi yanıltamaz.
  5. Asma kilit kontrolü yapın. SSL taşımasından sonra eksik veya uyarı asma kilidi, URL'lerin geride bırakıldığı anlamına gelir: Karışık İçerik Uyarılarını Düzeltme.
  6. Zor sayfalarla tıkla. Ana sayfa kaydırıcıları, başlık logosu, sayfa oluşturucu ile oluşturulan herhangi bir sayfa ve mağazadaki ödeme sayfası. Bunlar serileştirilmiş seçeneklerde yaşayan URL'leri tutarlar.
  7. Herhangi bir önbelleğe alma eklentisini kendi ayarlar ekranından temizleyin.

Sorun Giderme

Kuru çalıştırma sıfır değiştirme bildiriyor. Dize veritabanında bu tam biçimde değil. İz slasha, www. önekine veya şemaya bakın. İlk olarak orada olup olmadığını onaylamak için sadece çıplak hostname'i aramayı deneyin.

Alan adı değişikliğinden sonra görüntüler kırık. Medya URL'leri wp_posts ve wp_postmeta adresinde yaşar ve --all-tables tarafından alınır, ancak bir CDN veya görüntü optimizasyonu eklentisi kendi yeniden yazılmış kopyalarını önbelleğe alabilir. CDN'yi ve eklentinin önbelleğini temizleyin, ardından yeniden yükleyin.

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

Staging URL'leri geri gelmeye devam ediyor. Bir şey onları yeniden dolduruyordur, genellikle zamanlanmış bir itme veya önbelleğe alınmış bir seçenek. Staging Kullanma: İtme ve Çekme adresinde iş akışını kontrol edin ve push yapduğunuzda Rewrite URLs (URL'leri Yeniden Yaz) seçeneğinin işaretli olduğundan emin olun.

Hala yardıma mı ihtiyacınız var?

Bize şu adresinden e-posta gönderin: support@kapsulehost.com ya da KPanel'de sohbet açın.

KPanel'i Aç
WordPress Search and Replace | Kapsule Help