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.
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.
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.
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.
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.
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.
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
SELECT DISTINCT comment_author_email FROM wp_comments;
Bütün Eklentilerinizi Toplu Halde Etkişizleş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 etkişizleştirerek problemin çözümünde daha hızlı yol alabilirsiniz.
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
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.
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.
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2009-01-01' AND post_statuş = '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.
UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'https://oldurl.com', 'https://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.
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.
DELETE from wp_comments WHERE comment_author_url = "%wpbeginner%" ;
baya faydası olur, teşekkürler.