WordPress Yazı Sürümleri Derdi

____________________________________________________________________

WordPress, 2.6 sürümünden beri yazdığımız bir yazının belli anlarda kaydedilmiş taslaklarını sonradan geri dönebilme ihtiyacı olur diye tutuyordu. Tabi bu da zamanla veri tabanının gereksiz şişmesine sebep oluyordu. Bu pek kullanmadığımız özellikten kurtulmak gayet kolaymış.

phpMyAdmin ile veri tabanıım incelerken wp_posts tablosunun 4 MB olduğunu gördüm, bir de satır sayısı blogdaki yazı sayısının iki katından fazlaydı. Blogda 503 yazı var, tablodaki satır sayısı ise neredeyse 1200. Tabloyu inceledim birçok satırın aynı şekilde başladığını ve çoğunun yazı türü ‘post_type’ değerinin ‘revision‘ olduğunu fark ettim.

Konu ile ilgili biraz araştırma yapınca bunun Yazı sürümleri özelliği sebebiyle bu şekilde olduğunu anladım. WordPress her yazımız için farklı birkaç sürümle veri tabanını güzelce şişiriyordu. Tabi bazı yazılarımda yaklaşık 10 sürüm vardı orası başka. Bu şekilde veri tabanı boyutu ve wp_posts tablosundaki post_id değeri de devamlı büyüdüğünden tehlikeli bir hal almaya başlıyor. Ayrıca zaten bir yazıyı yazıp yayımladıktan kaç ay sonra geri dönüp daha eski bir sürümünü yayımlamak isteriz ki! 😀 Ayrıca WP destek sayfalarında dolaşırken de bazı moderatirlerin WP’yi bir sistem canavarı olarak görmediklerini anladım, bu özelliği devre dışı bırakmayı gereksiz buluyorlardı.

Bu özellikten kibarca kurtulmak için Revision Kontrol eklentisi var. Bu eklentiyi indirip sistemimize yüklüyoruz ve  etkinleştirip Ayarlar sekmesinde eklentinin temel ayarlarını yapıyoruz. Temel ayarlarında yazı sürümlerinin tutulup tutulmaması veya kaç tane tutulması gibi ayarları yapıyoruz. Bunları yazıyı yazarken de yazıya göre ayarlayabiliyoruz.

Eklentiyi buradan indirebilirsiniz.

Yukarıdaki kibar yöntemdi, sert yöntem ise bu özellikten tamamen kurtulmak ve bir daha bunu düşünmemek. Bunu ise wp-config.php dosyasına şu kodu koyarak yapıyoruz:

define(‘WP_POST_REVISIONS’, false);

Bir de daha önceden veri tabanımızda biriken yazılardan kurtulmak kaldı. Bunlar için de önce veri tabanımızı güzelce bir yedekliyoruz. Sonra da phpMyAdmin üzerinde şu sorguyu çalıştırıyoruz:

DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = ‘revision’

Bu sorgu ile yazı türü revision olan yazılar yani esas yazılarımızın sürümleri ve bu sürümlerle ilgili diğer bilgiler veri tabanımızdan temizleniyor. Ben bu işlemi yaptığımda wp_posts tablosunun boyuru 1.8 MB oldu. Sorgu bilgisinde de 0.3858 saniyede 1624 satırı sildiği yazıyordu. Yani WP için gerçekten iyi bir temizlik.

Bu arada veri tabanı yedeğinizi mutlaka almayı ve işlemden sonra veri tabanınızı iyileştirmeyi, optimize etmeyi veya uyarlamayı unutmayın, yoksa tablolarınızın boyutu küçülmez.