X

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.

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

Zaman kazandıran WordPress SQL Sorgu Parçaları
Bu konuya oy ver

Yazının son düzenleme zamanı 19 Kasım 2017 19:28

Yorumları Göster (1)

  • 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

Sitemizi geliştirmek üzere çerezler kullanıyoruz.