GenelNasıl Yapılır?WordPress

14 Faydalı WordPress SQL sorgusu

14 Faydalı WordPress SQL sorgusu, WordPress veritabanındaki yazı, kullanıcı, yorum, etiket ve ayar kayıtlarını anlamak için kullanılabilecek pratik örneklerden oluşur. Bu rehberde WordPress SQL komutlarının ne işe yaradığını, phpMyAdmin’de nasıl inceleneceğini ve veri kaybına yol açabilecek değişikliklerin nasıl güvenli biçimde yapılacağını öğrenebilirsiniz.

Kısa cevap: WordPress veritabanı için önce bir yedek alın; tablo önekinizi öğrenin, SELECT ile kayıtları önizleyin ve yalnızca gerekli değişiklikleri uygulayın. URL taşıma ve parola sıfırlama gibi işlemlerde doğrudan SQL yerine mümkünse WP-CLI kullanın. Buradaki örneklerdeki wp_ önekini sitenizin gerçek tablo önekiyle değiştirin.

14 Faydalı WordPress SQL Sorgusu: Ne İşe Yarar?

WordPress, MySQL veya MariaDB üzerinde çalışan bir veritabanı kullanabilir. wp_posts, wp_postmeta, wp_options, wp_users ve wp_comments gibi tablolar farklı kayıt türlerini saklar. PHP tabanlı eklentiler ek tablolar oluşturabilir. Aşağıdaki 14 örnek, gerçek işlemleri teşhis etmeye odaklanır; değiştiren veya silen sorgular ayrıca işaretlenmiştir.

WordPress SQL sorguları ve veritabanı işlemleri
WordPress veritabanı üzerinde SQL sorguları çalıştırmadan önce yedek alın.

WordPress Veritabanında SQL Çalıştırmadan Önce

  1. Yedek: phpMyAdmin → veritabanı → Dışa Aktar üzerinden tam SQL yedeği alın; geri yüklenebildiğini mümkünse test ortamında doğrulayın.
  2. Önek: wp-config.php dosyasındaki $table_prefix değeri wp_ olmayabilir.
  3. Test: Önce kopya/staging ortamında deneyin, mümkün olduğunda sadece okuma yapan SELECT sorgularıyla başlayın.
  4. Yetki: Gerçek site verilerinde ancak yetkiniz varsa işlem yapın; WooCommerce, çoklu site ve üyelik eklentilerinde ek bağımlılıklar bulunabilir.
  5. Güvenlik: SQL kodlarını asla ziyaretçi tarafından gönderilmiş doğrulanmamış verilerle birleştirmeyin.

phpMyAdmin’de ilgili veritabanını seçip SQL sekmesinden sorguyu çalıştırabilirsiniz. UPDATE ve DELETE sorguları hemen etkili olabileceğinden önizleme ve yedek adımını atlamayın.

WordPress için 14 SQL Sorgusu ve Güvenli Örnekleri

1. Site URL ve Home Ayarını Görüntüleme

Taşınma sonrasında home ve siteurl değerlerini önce görüntüleyin. Bu iki ayar aynı olmak zorunda değildir; wp-config.php içindeki sabitler veritabanı değerini geçersiz kılabilir.

SELECT option_name, option_value
FROM wp_options
WHERE option_name IN ('home', 'siteurl');

Uygulama notu: Değişiklik gerekiyorsa WordPress panelini veya wp option update home https://ornek.com ve wp option update siteurl https://ornek.com komutlarını tercih edin.

WordPress adresini değiştirirken HTTP/HTTPS veya alan adı yapılandırmasında yapılan hatalar yönlendirme döngülerine neden olabilir. Böyle bir sorun yaşarsanız WordPress yönlendirme hatası çözüm rehberimizi inceleyebilirsiniz.

2. GUID Kayıtlarını Kontrol Etme

Eski rehberlerdeki UPDATE wp_posts SET guid = ... komutunu kullanmayın. WordPress GUID değerleri URL taşımasında topluca değiştirilmemelidir.

SELECT ID, post_type, guid
FROM wp_posts
WHERE guid LIKE '%eskialanadi.com%'
LIMIT 30;

Uygulama notu: İçerik URL’lerini taşımak gerekiyorsa WP-CLI search-replace kullanın ve --skip-columns=guid ekleyin.

3. Yazı İçeriklerinde Eski Alan Adını Bulma

Bağlantıları değiştirmeden önce eski alan adına hangi içeriklerin işaret ettiğini kontrol edin.

SELECT ID, post_title, post_type
FROM wp_posts
WHERE post_content LIKE '%eskialanadi.com%'
LIMIT 50;

Uygulama notu: Serileştirilmiş verileri de kapsayan kapsamlı taşımalarda wp search-replace eski yeni --dry-run --skip-columns=guid ile test yapın.

4. Görsel Kaynağı İçeren Yazıları Listeleme

CDN geçişi veya kırık görsel sorunu öncesinde gövde içindeki eski görsel adreslerini tespit edin.

SELECT ID, post_title
FROM wp_posts
WHERE post_content LIKE '%/wp-content/uploads/%'
  AND post_status = 'publish'
LIMIT 50;

Uygulama notu: Görsel bağlantılarını doğrudan SQL ile topluca değiştirmek bazı blok içeriklerinde ve meta verilerde tutarsızlık yaratabilir. CDN URL’lerini önce altyapı ayarlarıyla yönetmeyi değerlendirin.

5. Postmeta İçinde Belirli Bir Anahtarı Bulma

Eklentiye ait meta verinin hangi yazılara bağlı olduğunu görün. _ornek_meta yerine araştırdığınız gerçek anahtarı yazın.

SELECT post_id, meta_key, LEFT(meta_value, 150) AS ornek
FROM wp_postmeta
WHERE meta_key = '_ornek_meta'
LIMIT 30;

Uygulama notu: Meta değerleri seri hâle getirilmiş olabilir. Körlemesine REPLACE() çalıştırmayın.

6. WordPress Kullanıcılarını Listeleme

Kullanıcı adı değiştirme işlemi öncesinde hesapları kimlik numaralarıyla kontrol edin.

SELECT ID, user_login, user_registered
FROM wp_users
ORDER BY ID
LIMIT 50;

Uygulama notu: Kullanıcı adı değişikliği için SQL yerine yetkili yönetim iş akışını veya wp user update 123 --user_login=yenikullanici yolunu test ortamında değerlendirin; entegrasyon etkilerini kontrol edin.

7. Kullanıcı Parolası Sıfırlamada Güvenli Yöntem

Eski MD5() örneklerini yeni parola oluşturma yöntemi olarak önermiyoruz. Parola hashing işlemini WordPress’e bırakın.

SELECT ID, user_login, user_email
FROM wp_users
WHERE user_login = 'ornek_kullanici';

Uygulama notu: Yetkiliyseniz wp user update ornek_kullanici --prompt=user_pass komutunu kullanın. Terminal geçmişinde açık parolayı saklamayın.

8. Yazıları Yazar ID’sine Göre Bulma

Yazıları başka yazara aktarmadan önce mevcut kaydı sayın.

SELECT post_author, COUNT(*) AS yazi_sayisi
FROM wp_posts
WHERE post_type = 'post' AND post_status = 'publish'
GROUP BY post_author;

Uygulama notu: Toplu aktarım gerekiyorsa yedek aldıktan sonra hedef ve kaynak kullanıcı ID’lerini doğrulayın; taslaklar ve özel yazı türlerini ayrıca değerlendirin.

9. Revizyon Sayısını Öğrenme

Revizyonları silmeden önce ne kadar kayıt bulunduğunu inceleyin.

SELECT COUNT(*) AS revizyon_sayisi
FROM wp_posts
WHERE post_type = 'revision';

Uygulama notu: Revizyonlar geri dönüş için değerlidir. Gereksizse önce WordPress araçları veya kontrollü WP-CLI temizliği kullanın; çok tablolu toplu DELETE sorgularını körlemesine çalıştırmayın.

10. Yetim Postmeta Kayıtlarını Bulma

Ana yazısı bulunmayan meta kayıtlarını tespit edin; bazen aktarma veya eklenti değişikliklerinden sonra ortaya çıkabilir.

SELECT pm.meta_id, pm.post_id, pm.meta_key
FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL
LIMIT 50;

Uygulama notu: Bu sorgu yalnızca liste üretir. Kayıtların gerçekten gereksiz olduğundan emin olmadan silmeyin.

11. Yorumları Durumlarına Göre Sayma

Yorum e-posta adreslerini izinsiz pazarlama listesine aktarmak yerine moderasyon yükünü analiz edin.

SELECT comment_approved, COUNT(*) AS yorum_sayisi
FROM wp_comments
GROUP BY comment_approved;

Uygulama notu: Yorumlarda bulunan e-posta adresleri pazarlama izni oluşturmaz; kişisel veri işleme kurallarına uyun.

12. Pingback Kayıtlarını Görüntüleme

Pingback kayıtlarının sayısını ve örneklerini kontrol edin.

SELECT comment_ID, comment_post_ID, comment_date
FROM wp_comments
WHERE comment_type = 'pingback'
ORDER BY comment_date DESC
LIMIT 30;

Uygulama notu: Bunların var olması otomatik olarak sorun değildir. Silmek isterseniz ilişkili meta verilerini ve moderasyon gereksinimlerini dikkate alın.

13. Spam Yorumların Sayısını Kontrol Etme

Spam yorumları temizlemeden önce miktarını öğrenin.

SELECT COUNT(*) AS spam_yorum_sayisi
FROM wp_comments
WHERE comment_approved = 'spam';

Uygulama notu: WordPress yönetimindeki Spam → Boşalt seçeneği, eklenti ve kanca davranışları bakımından doğrudan SQL silmeye göre daha güvenli olabilir.

14. Kullanılmayan Etiketleri Listeleme

Etiket sayısı sıfır olarak kayıtlı taksonomi terimlerini inceleyin; sayı önbelleği veya özel kullanım nedeniyle sonuç her durumda silinebilir anlamına gelmez.

SELECT t.term_id, t.name, tt.count
FROM wp_terms t
JOIN wp_term_taxonomy tt ON tt.term_id = t.term_id
WHERE tt.taxonomy = 'post_tag' AND tt.count = 0
ORDER BY t.name
LIMIT 100;

Uygulama notu: Etiketleri kaldırmadan önce gerçek içerik ilişkisini, özel sorguları ve yönlendirme ihtiyacını kontrol edin.

SQL ile Değil, WP-CLI ile Yapılması Daha Güvenli İşlemler

WordPress veritabanında alan adı değiştirme, seri hâle getirilmiş meta verileri güncelleme, parola sıfırlama ve içerik toplu temizliği gibi işlemler doğrudan SQL ile riskli olabilir. WP-CLI, WordPress işlevlerini kullanarak daha denetlenebilir bir işlem akışı sağlar.

# Alan adı değişikliğini önce simüle edin:
wp search-replace 'https://eski.example' 'https://yeni.example' --dry-run --skip-columns=guid

# Sonuçları doğruladıktan ve yedek aldıktan sonra:
wp search-replace 'https://eski.example' 'https://yeni.example' --skip-columns=guid

# Parolayı güvenle etkileşimli girin:
wp user update ornek_kullanici --prompt=user_pass

Çoklu sitede (multisite) --network gibi seçenekler ek analiz gerektirir. SQL sorgularını canlı sitede çalıştırmadan önce test ve geri alma planı hazırlayın.

WordPress dosyalarına veya yönetim araçlarına erişimde 403 hatasıyla karşılaşıyorsanız, veritabanı sorgularını değiştirmeden önce WordPress 403 Forbidden hatası rehberimizdeki izin ve sunucu yapılandırması kontrollerini inceleyin.

WordPress SQL Hataları ve Sık Karşılaşılan Sorunlar

  • Table does not exist: Yanlış veritabanı seçilmiş veya wp_ yerine farklı tablo öneki kullanılıyor olabilir.
  • Access denied: Veritabanı kullanıcısının ilgili tablo için yeterli yetkisi olmayabilir.
  • Unknown column: Tablo şeması, eklenti veya WordPress sürümüne göre farklı olabilir.
  • İşlem uzun sürüyor: Geniş tablolar ve indekslenmemiş LIKE sorguları yüksek yük oluşturabilir. Önce LIMIT ve uygun filtrelerle inceleyin.
  • URL değişti ama site bozuldu: Serileştirilmiş veride düz REPLACE() kullanılmış olabilir; yedekten dönüp WP-CLI ile kontrollü geçiş yapın.

14 Faydalı WordPress SQL Sorgusu Hakkında Sık Sorulan Sorular

WordPress SQL sorguları nerede çalıştırılır?

Yaygın yöntemlerden biri hosting kontrol panelindeki phpMyAdmin aracının SQL sekmesidir. Sunucu erişimi olan yöneticiler uygun komut satırı araçlarını da kullanabilir.

WordPress tablo öneki wp_ olmak zorunda mı?

Hayır. WordPress tablo öneki kurulum sırasında değiştirilebilir. Sorgularda gerçek tablo önekini kullanmanız gerekir.

SQL sorgusu çalıştırmadan önce yedek almak gerekir mi?

Evet. Özellikle UPDATE ve DELETE işlemlerinden önce tam yedek ve geri dönüş planı oluşturulmalıdır.

WordPress veritabanında URL nasıl değiştirilir?

Home ve siteurl ayarları yönetim panelinden veya WP-CLI ile güncellenebilir. Tüm veritabanındaki adresleri değiştirmek için seri hâle getirilmiş verileri koruyan WP-CLI search-replace önerilir.

WordPress GUID alanı güncellenmeli mi?

Alan adı taşıma sırasında wp_posts tablosundaki GUID değerleri topluca değiştirilmemelidir.

WordPress kullanıcı parolası SQL ile MD5 kullanılarak sıfırlanmalı mı?

MD5 ile doğrudan SQL güncellemesi yerine WordPress parola sıfırlama işlevleri veya WP-CLI kullanılması daha uygundur.

Kaynaklar

MKorkut

Amaç bilgi.. Android 'den anlamam, sorun gelir araştırmamı yapar çözümü sunarım. Makaleyi iyice okumadan yorum yapmayın lütfen, herkesin anlayabileceği bir sade dil ile sorunları özetleyip makaleyi yayınlıyorum.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu