Zaman kazandıran WordPress SQL Sorgu Parçaları
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.
Veritabanınızda yüzlerce veya binlerce yazı bulunduğunu ve site çapında genel değişiklikler yapmanız gerektiğini varsayalım. Her düzenlemeyi WordPress Kontrol Paneli üzerinden yapmak zaman kazandırabilir ve hatalar meydana gelebilir. Site geneli düzenlemeler yapmanız gerekiyorsa, kollarınızı sıvayıp doğrudan WordPress MySQL veritabanına girmenin zamanı geldi.
Yazı İndeksi
Ö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 yedeklemenize yardımcı olacak bazı kaynaklar:
- WordPress yedekleme eklentileri, Ücretsiz olarak sunulan yedekleme eklentileri ile sitenizi kolayca yedekleyebilirsiniz.
- WordPress yedek alma, daha önce detaylı olarak anlattığımız eklenti üzerinden sitenizin sadece veritabanının yedeğini alabilirsiniz.
Birazdan vereceğimiz SQL sorgularını kullanmadan önce kesinlikte veritabanınızın yedeğini aldığınızdan emin olun.
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.
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;
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;
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.
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.
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.
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.
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.
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:
UPDATE wp_posts SET ping_status = 'open';
Tüm kullanıcılar için pingback ve trackback devre dışı bırakma:
UPDATE wp_posts SET ping_status = 'closed';
Belirli bir tarihe kadar olan pinback ve tracback özelliğini düzenleme için:
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.
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.
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:
UPDATE wp_posts SET post_type = 'page' WHERE post_type = 'post'
Yazılan yazıları sayfa olarak değiştirme
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.
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.
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.
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.
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.
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:
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:
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.
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.
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.
Aklınıza takılan tüm soru ve eklemek istedikleriniz için yorum yapmaktan çekinmeyin.
Merhabalar. Hocam Anlatım Tarzınıza Bayılıyorum Gerçekten Başarılı Bir İşleme İmza atmış oldum sayenizde Çok teşekkür ederim
Emeğine sağlık, bana olduğu gibi birçok kişinin işine yarayacaktır.
Yazımızın işinize yaramasına çok sevindik (: