WordPress Revisions özelliğini kapatmak ve database’yi temizlemek.

WordPress 2.6 sürümüne hemen hemen herkes geçiş yapmıştır. WP 2.6 Sürümünde gelen özelliklerden biriside WP Revisions yani yazının önceki sürümleri özelliği…

Bu özellik sayesinde WordPress 2.6 sürümünüzde bir yazıyı değiştirdiğiniz zaman yada daha sonra yazınıza ekleme yaptığınız zaman aynı yazının bir kopyasını çıkartıyor. Eğer yanlışlık yaparsanız yada yazınızda bir değişiklik yaptıktan sonra ulan tühhh … Keşke hiç dokunmasaydım gibi. Laflar etmeyeceksiniz. Her değişiklik için farklı bir sürüm olarak kayıt ediyor. Yönetim panelinde TEXT editörünüzün en altında POST REVISIONS olarak yazının sürümlerini tek tek görebilir istediğiniz sürüme geçebilirsiniz.

Tabi herkes gibi bende kullanmaya başladım fakat bir süre sonra özelliklede benim gibi bir yazı üzerinde 2-3 kez değişiklik yapıyorsanız DATABASE şişmeye başlıyor. 1 yazı 1MB yer kapladığını sallarsak 3 kez sürüm kayıt edildiğinde doğal olarak 3MB yer kaplayacaktır. Böylelikle Databaseniz normalden daha fazla büyüyor…

WordPress Revisions özelliğini kullanmak istemiyorum ne yapabilirim ?

İnternette aradığınız zaman bir eklenti olarak bulabiliyorsunuz (bkn: Wolkanca) aslında daha basit ve kolay bir yöneteminide WordPress Destek bölümünde okudum (bkz: Sinerjik)

Wp-Config.php dosyanızın içerisinde ufak bir komut girerek çok basit bir şekilde kapatabilmektesiniz.

Wp-Config ;

<?php
// ** MySQL ayarları ** //
define('DB_NAME', 'DATABASEADI');    // Veritabanı adı
define('DB_USER', 'KULLANICIADI');     // MySQL kullanıcı adınız
define('DB_PASSWORD', 'ŞİFRENİZ'); // ...ve MYSQL parolası
define('DB_HOST', 'localhost');    // % 99 ihtimalle bunu değiştirmenize gerek yok

// Tüm kurulumlara ayrı bir önek vererek bir veritabanına birden fazla kurulum yapabilirsiniz, tek kurulum yapacaksanız değiştirmeye gerek yok.
$table_prefix  = 'wp_';   // Veritabanı tablo öneki. Sadece sayı ve harf.

// Bu değeri değiştirmenize gerek yok! Zaten Türkçe'ye ayarlı.
define ('WPLANG', 'tr_TR');

// Wolkanca Otomtik kayıt etme iptali
define( 'AUTOSAVE_INTERVAL', 600 );
// TEAkolik Post revisionsiptali
define ('WP_POST_REVISIONS', 0);

/* Hepsi bu kadar. İyi bloglamalar! */

define('ABSPATH', dirname(__FILE__).'/');
require_once(ABSPATH.'wp-settings.php');
?>

Bu örnek wp-config.php dosyası içerisinde KIRMIZI renkle yazdığım satırda POST REVISIONS özelliğini FALSE olarak belirtip kapatmış oluyoruz. Eğer tekrar aktif etmek isterseniz TRUE olarak değiştirebilir yada satırı komple silebilirsiniz.

Böylelikle bir eklenti kurmadan sisteminizdeki YAZININ ÖNCEKİ SÜRÜMLERİ yani POST REVISIONS özelliği kapanmış olacaktır.

Peki kapattım ama databasede duran kayıtlar ne olacak ? Yani bu özelliği devre dışı bırakmadan önceki yazıların kopyaları ne olacak DATABASE’de duracak mı ?

Evet databasede hala kayıtlarınız mevcut birde bu kayıtları temizlemek gerekecek. Bu kayıtları temizleyerek Database’mizi rahatlatalım bunun için biraz MYSQL bilgisi gerekiyor. Öncelikle bilginiz yoksa bilen birine yaptırın yada hiç dokunmayın bırakın kalsın diye uyarımı yapayım. Sonra Database gitti… Bilmem ne yok senin yüzünden demeyin sorumluluk kabul etmiyoruz. Paranızıda iade etmeyiz 🙂

Öncelikle Kontrol panelimizden

PhpMyAdmin i açalım ve ilk iş olarak Database’mizin bir yedeğini DIŞARI AKTAR seçeneğinden YEDEKLEYELİM..!

Sonrada PhpMyAdmin’den SQL sekmesine gelelim ve aşağıdaki sorguyu yazalım.

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

SQL sorgumuz çalıştı ve aşağıdaki gibi bir uyarı aldık…

Silinen satırlar: 113 (Sorgu 0.0543 san sürdü)

Databasemde hiçbir işe yaramayan ( Bana göre ) 113 satırı sildim. Datamız biraz daha rahatladı. Eğer böyle devam etseydim heralde 2 haftada databasem 20Mb dan 60Mb a çıkardı 🙂

Hadi kolay gelsin …

“WordPress Revisions özelliğini kapatmak ve database’yi temizlemek.” üzerine 31 yorum

  1. WordPress 2.6 ya henüz geçmedim nedense geçmek de istemiyorum.Ama geçersem bu paylaştığın bilgi işimi görecektir.Bilgi için çok teşekkürler.

    Yanıtla
  2. “Hata

    SQL sorgusu:

    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’

    MySQL çıktısı: Belgeler
    #1054 – Unknown column ‘‘revision’’ in ‘where clause’ ”

    şeklinde hata alıyorum.

    Yanıtla
  3. Text editöründen dolayı tek tırnak işaret (‘) çift tırnak olmuş tırnakları tek tırnak yaparsan sorun düzelir.

    revision’

    ‘revision’ olacak.

    Yanıtla
  4. Sağol hocam, sırf bu yüzden WP 2.6’yı kurmamıştık. Şimdi çözümü olduğuna göre kurulabilir. 🙂

    Ama muhtemelen 2.7 ile bu özelliği opsiyonel bir seçenek haline getireceklerdir.

    Yanıtla
  5. otomotik kaydetme var bi de aoutosave o da veritabanına ekstra ekliyor. taslak olarak.

    onu da şöyle;
    config e

    define( ‘AUTOSAVE_INTERVAL’, 600 ); // 60= 1 saat.

    yani config e şöyle ekleyelim;

    define( ‘AUTOSAVE_INTERVAL’, 600 );
    define (‘WP_POST_REVISIONS’, 0);

    Yanıtla
  6. Diğer sürümlerde(2.6+) ihtiyaç var mı? Bir de opsiyonel olması birşeyi değiştirmiyor, sonuçda genelde verileri toplarım sonra onları admin panalinde düzenleyerek yazımı oluştururm. Bu yüzden oto-save işime geliyor,bir terslik olur diye. Sonradan bunları phpMyadmin’den sölenen şekilde mi silmek zorundayız?

    Yanıtla
  7. Ben bunun yerine wp optimize kullanıyorum. Tekrar postların otomatik silinmesindense eklenti ile istediğim zaman silmek daha güvenli gibi geliyor.

    Yanıtla
  8. // Wolkanca Otomtik kayıt etme iptali
    define( ‘AUTOSAVE_INTERVAL’, 600 );
    // TEAkolik Post revisionsiptali
    define (‘WP_POST_REVISIONS’, 0);

    Abi False falan yapıyoruz demişinya, ben bunu config.php’ye kopyaladım baska bisi yapmıcam deme kaydetmemesi için.. FALSE’leri biyere yazmıyoz sanırım doğrumu anladım ?

    Yanıtla
  9. çok teşekkürler hocam sayenizde birçokşeyi öğrendim Allah razı olsun…

    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 kodu sql sekmesine yapıştırdım fakat olmadı neden acaba:) ?

    ‘revision‘ kırmızı renk ile bunu gösteriyo

    Yanıtla
  10. @joseph
    Tırnak işaretlerini sil tekrar yaz kopyala yapıştır yapınca tırnak işaretleri sıkıntı çıkarıyor. ‘revision’ tek tırnak olacak. Çift gelmiş seninkine.

    Yanıtla
  11. Sorguyu kopyala yapıştır yaptım fakat
    #1054 – Unknown column ‘‘revision‘’ in ‘where clause’ bu mesajı aldım..

    Girdiğim kodlar

    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‘

    Girdiğim kodlar bunlar. Bunlar dışında yapmam gereken birşey var mı?

    Yanıtla
    • Tırnak işaretlerini sil tekrar koy. Kopyalarken tırnak işaretleri sapıttıryor. pastelediğin hatada da tırnak işaretleri bak sapıtmış. Sil yeniden tırnak koy.

      Yanıtla
  12. Çok teşekkür ederim şuan oldu.. Birşey öğrenmek istiyorum.. Diğer bir sitem var onun içinede az önce şu komutu ekledim

    define (‘WPLANG’, ‘tr_TR’);

    define (’WP_POST_REVISIONS’, false);

    bu komutu ekledikten sonra aynı silme işlemini yapsam ve komutuda hiç kaldırmasam ve o komutu dosya içinde bıraksam siteme bir zararı olurmu?

    Yanıtla
  13. Merhabalar,
    Faydalı bir bilgi ama kodların güncellenmesi gerekiyor.Hocam 2013 e güncellersen kodları şeker gibi bir post olur.

    Yanıtla
  14. Arkadaşlar merhaba, wordpress 4.4.1 versiyonunu kullanıyorum. Ana sayfayı düzenlerken hata yapıp sayfayı güncelledim. Revision özelliği yani sayfanın geçmişteki kayıtları butonunu göremiyorum. Bu özelliği nasıl görebilirim? Phpmyadmin’den örneğin 06.01.2016 – 17.00 tarihine ”Anasayfayı geri yükleyebilirmiyim” yardımlarıız için şimdiden çok teşekkürler.

    Yanıtla

Yorum yapın