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

Source: https://support.kapsulehost.com/tr-tr/wordpress-search-replace

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.

> **Warning:** 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](https://support.kapsulehost.com/tr-tr/taking-a-backup).

## 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.

> **Important:** 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](https://kpanel.kapsulehost.com)'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ı](https://support.kapsulehost.com/help/screenshots/wordpress-search-replace.d3d0a573.webp)

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.

> **Tip:** 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
```

> **Warning:** 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:

| Bayrak | Ne yapar |
|---|---|
| `--all-tables` | Yalnızca çekirdek WordPress tablolarını değil, eklentilerin oluşturduğu özel tabloları da dahil eder |
| `--dry-run` | Neyin değişeceğini bildirir ve hiçbir şey yazmaz |
| `--precise` | Değiştirme için SQL yerine PHP kullanır. Daha yavaştır, ancak zorlu serileştirilmiş yapıları işler |
| `--skip-columns=guid` | Yazı 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](https://support.kapsulehost.com/tr-tr/cdn-cache-purge).
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](https://support.kapsulehost.com/tr-tr/ssl-mixed-content).
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](https://support.kapsulehost.com/tr-tr/restoring-from-backup).

**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](https://support.kapsulehost.com/tr-tr/wordpress-staging-workflow) makalesindeki iş akışını kontrol edin ve gönderim yaparken **URL'leri Yeniden Yaz** seçeneğinin işaretli olduğundan emin olun.
