Wordpress’inizin hayatını kurtaracak 10+ SQL Sorgusu

Wordpress’inizin hayatını kurtaracak 10+ SQL Sorgusu

Wordpress’iniz varsa üzülerek söylüyorum ki düzenleme ve periyodik bakım konusunda yapmanız gereken çok işiniz var demektir. Ve bazı durumlarda karşılaştığınız spesifik problemler için hızlı olmak zorunda kalabilirsiniz. İşte böyle durumlarda direkt veritabanı üzerinde çalışmak gerçekten hayat kurtarabilir. Bu makalede Wordpress için 10+ kullanışlı SQL sorgusunu görebilirsiniz. Wordpress’iniz zor durumda kaldığında bu hızlı ve pratik sorgular kesinlikle işinize yarayacak.

SQL Sorgulaması Nasıl Yapılır?

Henüz bilmeyenler için kısaca bahsedeyim. SQL sorguları MySQL komut satırı yorumlayıcısında çalıştırılır. Ya da bir çoğumuzun kullandığı PhpMyAdmin gibi popüler bir web arayüzü de kullanılarak yürütülebilir. Kullanıcı dostu arayüzü ve ile SQL sorgularının direkt olarak yorumlanmasını sağlayan  SQL Executionner wordpress eklentisini de mutlaka kullanmanızı tavsiye ederim.

Sorgulardan önce…

Bu SQL sorguları her ne kadar test edilmiş olsa da, her şeye rağmen sorguları gerçekleştirmeden önce veritabanının yedeğini almayı sakın unutmayın.

Şifrenizi Elle Değiştirmek

Bir gün sizin de başınıza gelebilir. Eğer admin şifrenizi unutursanız tek çözüm MySQL Veritabanı’nda yeni bir şifre oluşturmaktır. Bu sorgunun tek görevi de  bu. Yalnız şifre dönüştürme işlemi için MD5 fonksiyonunun kullanıldığına da dikkatinizi çekmek isterim.

?View Code LANGUAGE
UPDATE 'wp_users' SET 'user_pass' = MD5('PASSWORD') WHERE 'user_login' ='admin' LIMIT 1;

Yazıları Bir Kullanıcıdan Diğerine Aktarmak

Yeni Wordpress kullanıcıları, güvenlik açısından yazılarını “admin” adı ile yazmamaları gerektiğini bilmiyor ya da unutmuş olabilirler.  Eğer siz de bu hatayı yaptıysanız bu sorgu ile eski yazılarınızı yeni oluşturduğunuz kullanıcıya aktarabilirsiniz. Bu sorguyu kullanırken eski ve yeni kullanıcı adına ihtiyacınız olacaktır.

?View Code LANGUAGE
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

Yazılardaki Güncelleme Bilgilerini Silin

Güncelleme bilgileri bazen kullanışlı olabiliyor. Özellikle de çok kullanıcılı bloglarda. Ancak bu güncelleme bilgilerinin veritabanındaki kayıtları göründüğünden daha fazla. Örneğin; Blogunuzda 100 adet yazı var ve her biri 10 defa düzenlenerek güncellenmiş. Bütün bu işlemler veritabanındaki wp_posts tablosunda tam 1000 adet kayıt tutulması anlamına geliyor. Oysa size 100 adet kayıt yeterli.

İşte bu sorgu, bahsettiğimiz yazı güncelleme bilgilerini ve ilgili metaları anında silmeye yarıyor. Veritabanındaki şişkinliği giderip rahatlatmak için oldukça işe yarar bir sorgu.

?View Code LANGUAGE
DELETE a,b,c FROM wp_posts a WHERE a.post_type = 'revision' LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id);

Spam Yorumları Toplu Halde Silme

Fazla söze gerek yok aslında, başlık her şeyi anlatıyor. Onay listesinde biriken spam yorumları toplu halde silmenize yarıyor.

?View Code LANGUAGE
DELETE from wp_comments WHERE comment_approved = '0';

Kullanılmayan Etiketleri Bulun

Etiketler veritabanının wp_terms tablosunda kaydedilir. Ve bazen oluşturulduğu günden beri hiç kullanılmayan etiketler olabilir. Bu kullanılmayan etiketlerin veritabanında daha fazla yer kaplamasını istemiyorsanız, bu sorgu ile güvenli bir şekilde silebilirsiniz.

?View Code LANGUAGE
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;

Verileri Bulun Ve Değiştirin

Bu aslında Wordpress için çok gerekli olmayabilir ancak MySQL kullanan herkesin bilmesi gereken bir ipucu. replace() fonksiyonu bir stringi bulup başka bir string ile değiştirmeye yarar. Bu sorguyu çalıştırarak, bir stringi -bütün özellikleri ile birlikte- başka bir stringle değiştirebilirsiniz.

?View Code LANGUAGE
UPDATE table_name SET field_name = replace( field_name, 'string_to_find', 'string_to_replace' ) ;

Yorum Yazanların Emaillerini Liste Halinde Görün

Bütün yorum yazanların emaillerini liste halinde görmenizi sağlayan kullanışlı bir sorgu. DISTINCT parametresi sayesinde birden fazla yorum yazan kişilerin email adresini sadece bir kere listeliyor.

?View Code LANGUAGE
SELECT DISTINCT comment_author_email FROM wp_comments;

Bütün Eklentilerinizi Toplu Halde Etkisizleştirin

Wordpress’te bir şeyler ters gittiğinde çoğunlukla problemin kaynağı kurulan eklentiler olabilir. Ve çok ziyaretçili web sitelerinde bu problemi çözmek için hızlı olmanız gerekir. Bu sorgu sayesinde bütün eklentileri aynı anda etkisizleştirerek problemin çözümünde daha hızlı yol alabilirsiniz.

?View Code LANGUAGE
UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

Bütün Etiketleri Silin

Wordpress’te etiketler kategorilerine ve sınıflarına göre kaydedilir. Eğer oluşturduğunuz bütün etiketleri silmek isterseniz, bu işlemi yazılarınıza zarar vermeden gerçekleştiren bu sorgu çok işinize yarayacak.

?View Code LANGUAGE
DELETE a,b,c
FROM
	database.prefix_terms AS a
	LEFT JOIN database.prefix_term_taxonomy AS c ON a.term_id = c.term_id
	LEFT JOIN database.prefix_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE (
	c.taxonomy = 'post_tag' AND
	c.count = 0
	);

Kullanılmayan Yazı Metalarını Listeleyin

Blogunuzda yazdığınız yazıların meta bilgileri eklentiler ve özel alanlar aracılığı ile oluşturulur. Çoğu zaman işinize yarasa da veritabanının birdenire büyümesine neden olur. Bu sorgu ile kullanılmadığı halde veritabanında yer kaplayan meta bilgilerini listeleyebilirsiniz.

?View Code LANGUAGE
SELECT * FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;

Eski Yazılardaki Yorumları Kaldırın

1 yıldan daha fazla süredir blog sahibi olanlar bilecektir, eski yazıların altında biriken yorumlar güncelliğini yitirdiği için çoğu zaman okunmadığı halde gereksiz yer kaplayabiliyorlar. Aşağıdaki sorguda 2009-01-01 yerine istediğiniz tarihi yazarak, belirlediğiniz tarihten önceki yazıların yorumlarını anında silebilirsiniz. Kesinlikle bir çok kişinin işine yarayacağını tahmin ediyorum.

?View Code LANGUAGE
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2009-01-01' AND post_status = 'publish';

Yorum Yazanların Site Linklerini Değiştirin

MySQL’deki replace() fonksiyonunun ne kadar işe yaradığından bahsetmiştim. Aşağıdaki sorgu da kesinlikle bunu kanıtlıyor. Özellikle de backlink için yazılan URL adreslerini değiştirmeniz için işinize yarayabilir.

?View Code LANGUAGE
UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'http://oldurl.com', 'http://newurl.com' );

Yorum Yazanların Email Adreslerini Değiştirin

Bu sorgu ile de yorum yazan kişilerin email adreslerini yenisi ile değiştirebiliyorsunuz.

?View Code LANGUAGE
UPDATE wp_comments SET comment_author_email = REPLACE( comment_author_email, 'old-email@address.com', 'new-email@address.com' );

Spam Link Bulunan Yorumları Silin

Son olarak, blogunuza yorum şeklinde eklenen spam linklerin önüne geçebilmek için işinize yarayacak bir SQL sorgusu. Sorguda bulunan “%wpbeginner%” bölümü “%” işaretinin arasında olan url adresinin bulunduğu bütün yorumların silinmesi anlamına geliyor.

?View Code LANGUAGE
DELETE from wp_comments WHERE comment_author_url = "%wpbeginner%" ;

3 Yorum

  1. Cemal Uzun |

    şahane bir derleme.blogu olupda phpMyadmin kullanmayı bilenlerin kaçırmaması gerek.

    [Cevapla]

  2. Çok faydalı bir kaynak bu şeyler bazen gerçekten hayat kurtarıyor.

    [Cevapla]

  3. Oldukca ise yarar seyler var tesekürler

    [Cevapla]

Yorum yazın