WordPress - Kullanışlı Sql Sorguları

YoRuMSuZ

Biz işimize bakalım...
WordPress, gereksiz birçok bilgiyi MySQL veritabanında depolar. Yazılar, sayfalar, yorumlar, kısa kodlar, eklenti ayarları … kesinlikle her şeyi. WordPress yönetim ve geliştirme açısından harikadır, ancak belirli bir noktaya kadar yönetmenize ve düzenlemenize izin verir.

Gelelim SQL sorguları ile veritabanını nasıl optimize edeceğinize​


Önce WordPress Sitenizi Yedek Alın!​

WordPress veritabanınız, özenle yazılmış yazılarınızı, okuyucularınızdan gelen her yorumu ve sitenizi kişiselleştirmek için kullandığınız her ayarı saklar. SQL sorgularını kullanma bilginize ne kadar iyi olursa olsun, önce WordPress veritabanınızı yedeklemeyi unutmayın!

WordPress Yazı ve Sayfalara Özel Alan Ekleme​

Bu sorgu, WP veritabanında bulunan her yazı ve sayfaya özel bir alan ekleyecektir. Yapmanız gereken tek şey, oluşturduğunuz özel alan değerini kod içerisine girerek kullanmaktır. Sonrasında vermiş olduğunuz özel alan değerinin karşılığını eklemektir. Sorgu içerisinde yer alan özel_alan ve özel_alan_değeri kısımlarını kendinize göre düzenleyin ve çalıştırın.
Kod:
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'özel_alan'
AS meta_key 'özel_alan_değeri AS meta_value FROM wp_posts
WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'özel alan');

Sadece yazılar üzerinde ekleme yapma;
Kod:
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'özel_alan'
AS meta_key 'özel_alan_değeri AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'özel_alan')
'' AND post_type = 'post';

Sadece sayfalar üzerinde ekleme yapma;
Kod:
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'özel_alan'
AS meta_key 'özel_alan_değeri AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'özel_alan')
'' AND post_type = 'page';

Genel olarak SQL sorgularına aşina değilseniz, bu sorgular sitenizin çalışmamasına sebep olabilir.

WordPress Post Meta Silme​

Eklentileri yüklediğinizde veya kaldırdığınızda, verileri depolamak için meta metnini kullanırlar. Bir eklentiyi kaldırdıktan sonra, veriler post_meta tablosunda saklanmaya devam etmektedir. Bu sorguyu çalıştırmadan önce MetaKey değerini değiştirin.
Kod:
DELETE FROM wp_postmeta WHERE meta_key = 'MetaKey';

Kullanılmayan WordPress Etiketlerini Bulma​

Eski ve güncel olmayan yazılarınızı silmeden önce etiketleri kaldırmadıysanız, büyük ihtimalle etiketler hala aktif olarak duruyor demektir. Bu sorgu, kullanılmayan tüm etiketleri görmenize izin verir.
Kod:
SELECT * From wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0;
Eğer kullanılmayan etiketler halen sitenize bağlantı veriyor ise bir an önce 301 yönlendirmenizi yapmalısınız.

WordPress Spam Yorumlarını Toplu Silme​

WordPress sitenize düşen spam işaretli yorumları tek seferde silmek için bu sorguyu çalıştırmanız yeterlidir.
Kod:
DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';

Tüm Onaylanmamış WordPress Yorumlarını Toplu Silme​

Bu SQL sorgusu, onaylanmamış tüm yorumları kaldırır. Onaylanmış ve spam olanlara dokunmaz.
Kod:
DELETE FROM wp_comments WHERE comment_approved = 0

Eski WordPress Yazılarını Yorumlara Kapatma​

Bu sorgu için comment_status öğesini open, closed veya registered_only olarak değiştirmenizi sağlamaktadır. Hangi tarihe kadar olan yazılarınızın yoruma kapatılmasını istiyorsan, tarih kısmını isteğiniz doğrultusunda değiştirin.
Kod:
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2017-01-01' AND post_status = 'publish';

WordPress Geri İzleme ve Pingback Devre Dışı Bırakma ve Etkinleştirme​

Bu sorgu için comment_status öğesini open, closed veya registered_only olarak belirtmeniz gerekiyor.

Tüm kullanıcılar için pingback ve trackback etkinleştirme:
Kod:
UPDATE wp_posts SET ping_status = 'open';

Tüm kullanıcılar için pingback ve trackback devre dışı bırakma:
Kod:
UPDATE wp_posts SET ping_status = 'closed';

Belirli bir tarihe kadar olan pinback ve tracback özelliğini düzenleme için:
Kod:
UPDATE wp_posts SET ping_status = 'closed' WHERE post_date < '2017-01-01' AND post_status = 'publish';

WordPress Yorumlarından Belirlediğiniz URL Silme İşlemi​

Aynı URL’yi içeren spam yorumlarınız varsa, bu sorgu tek seferde bunları kaldırmanıza izin verir. Aşağıdaki sorgu, tüm yorumları tarayıp vermiş olduğunuz URL adresini silecektir. ‘%’, ‘%’ İşaretleri içine alan adını girmeniz ve ardından çalıştırmanız yeterlidir.
Kod:
DELETE from wp_comments WHERE comment_author_url LIKE "%alandi%" ;

Kullanılmayan WordPress Kısa Kodları Kaldırma​

WordPress kısa kodlar kullanımı son derece kolaydır, ancak bunları kullanmayı bırakmaya karar verirseniz kodları yayın içeriğinizde kaldırmanız gerekmektedir. İstenmeyen kısa kodlardan kurtulmak için veritabanınızda çalıştırılacak basit bir SQL sorgusunu aşağıda veriyoruz. Kullanılmayan kısa kodları kendi kısa kod adınızla değiştirmeniz yeterlidir.
Kod:
UPDATE wp_post SET post_content = replace(post_content, '[kullanılmayan-kisa-kod]', '' ) ;

WordPress Yazı ve Sayfa İçerik Değişimi​

Yeni başlayan birçok kişi blog yazılarını bilmeden sayfalar altına ekleyebiliyor. Vereceğimiz SQL sorgusu ile kolayca yazıları sayfalara ve sayfaları yazılarla yer değişikliği yapabilirsiniz.

Yazılan sayfaları yazı olarak değiştirme:
Kod:
UPDATE wp_posts SET post_type = 'page' WHERE post_type = 'post'

Yazılan yazıları sayfa olarak değiştirme
Kod:
UPDATE wp_posts SET post_type = 'post' WHERE post_type = 'page'

WordPress Yazar Değiştirme​

WordPress sitenizde yazmış olduğunuz yazılarınızın yazar bilgisini toplu olarak değiştirebilirsiniz. Bunun için ilk olarak yazar hesabının, ID numarasını öğrenmek için aşağıda ki sorguyu çalıştırın.
Kod:
SELECT ID, display_name FROM wp_users;

Ekran üzerine gelen liste içerisinden değiştirmek istediğiniz yazar ID numarasını, sorgu içerisine ekleyerek sorguyu çalıştırın.
Kod:
UPDATE wp_posts SET post_author=yeni_ID WHERE post_author=eski_ID;

WordPress Revizyonlarını Toplu Silme​

Eğer çok fazla yazı ve sayfa düzenlemesi yapıyorsanız, eski ve köklü bir WordPress siteniz varsa bu sorgu tam sizin için. Veri tabanınız içerisinde saklanan revizyonlar zamanla çok fazla gereksiz alan kaplayacaktır. Bu sorgu ile tek seferde tüm revizyonları silebilirsiniz.
Kod:
DELETE FROM wp_posts WHERE post_type = "revision";

WordPress Eklentilerini Pasifleştirme​

Beyaz ekran hatası veya yeni bir eklenti etkinleştirdikten sonra yönetici panelinize giriş yapamıyorsanız, bu sorgu kesinlikle size yardımcı olacaktır. Tüm eklentileri anında devre dışı bırakır, böylece tekrar oturum açabilirsiniz.
Kod:
UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';

WordPress Site URL Adresini Değiştirme​

WordPress sitenizi farklı bir alan adı altına taşıdıysanız, sitenizin doğru görüntülenebilmesi için WordPress sitenizin URL adresini değiştirmeniz gerekmektedir.

Üç tablo altında sitenizin adresini tutan kısımları sırası ile değiştmeniz gerekmektedir. Sorgular içerisinde eskisite.com ve yenisite.com adreslerini kendinize göre uyarlayarak sorguyu çalıştırınız.
Kod:
UPDATE wp_options SET option_value = replace(option_value, 'http://eskisite.com', 'http://yenisite.com') WHERE option_name = 'home' OR option_name = 'siteurl';

Yazı sayfalarının bağlantı adreslerini değiştirmek için gereken sorgu:
Kod:
UPDATE wp_posts SET guid = replace(guid, 'http://eskisite.com','http://yenisite.com);

Ve son olarak, yeni URL bağlantınızın eski URL ile karışmadığından emin olmak için çalıştırmanız gereken sorgu:
Kod:
UPDATE wp_posts SET post_content = replace(post_content, ' http://eskisite.com ', ' http://yenisite.com ');

WordPress Admin Kullanıcı Değiştirme​

Çoğu WordPress kullanıcısı kurulum ekranında yönetici ismini Admin olarak bırakmaktadır. Bu güvenliğiniz açısından büyük risk taşımaktadır. Yönetim paneliniz üzerinden admin kullanıcısına isim değişikliği yapılamadığı için aşağıda ki sorguyu çalıştırmanız gerekmektedir.

Kod:
Sorgu içerisinde yer alan yenikullanici alanını kendinize göre düzenleyerek çalıştırın.
UPDATE wp_users SET user_login = 'yenikullanici' WHERE user_login = 'Admin';

WordPress Kullanıcı Şifresi Değiştirme​

Eğer WordPress şifrenizi unuttuysanız, yada şifre hatırlatma için e-posta alamıyorsanız bu sorgu sizi bu dertten kurtaracaktır. Sorgu içerisinde yer alan kullaniciadi ve sifre alanlarını kendinize göre düzenleyerek sorguyu çalıştırmanız yeterlidir.
Kod:
UPDATE 'wordpress'.'wp_users' SET 'user_pass' = MD5('sifre') WHERE 'wp_users'.'user_login' ='kullaniciadi' LIMIT 1;

Bilinmesi Gerekenler​

Yazı içerisinde verdiğimiz SQL sorgularını, bazı WordPress eklentileri sizin yerinize yapabilir. Ancak bazı durumlarda istenmeyen durumların oluşmasını engellemek adına sorguları kendinizin çalıştırması daha yararlı olacaktır. Yazımızın başında belirttiğim gibi sorguları kullanmadan önce mutlaka yedek alın.
 
Top