Misafir adlı üyeden alıntı: mesajı görüntüle
WordPress'in kasma problemleriyle herkes gibi benimde başım dertteydi. Ta ki buna bir çözüm bulmalıyım diyene kadar!

Kendim düne kadar başka bi hali ile kullanıyordum fakat @dev nickli kullanıcının yardımıyla da ufak sorunu da ortadan kaldırdık. Dilediğiniz gibi kullanıp geliştirebilirsiniz.

Yapmanız gerkenleri adım adım yazıyorum.

1. aşama
  1. wp-admin
  2. wp-content
  3. wp-includes

klasörlerinin bulunduğu dizine "cache" adında bir klasör oluşturup chmod değerini 777 olarak verin.

2. aşama
Yukarıdaki adımları gerçekleştirden sonra tema dizinine gidiyoruz. O dizinde bulunan single.php dosyasını açıp aşağıdaki kodu <?php get_header()?> kodunun hemen üstüne ekleyin.

<?php
$url = md5($_SERVER['REQUEST_URI']).".cache";
$adres = "cache/".$url;
$zaman = 15 * 24 * 60 * 60;
if (file_exists($adres)) {
if(time() - $zaman < filemtime($adres)) {
readfile($adres);
exit;
}else {
unlink($adres);
} }
ob_start(); 
?>
daha sonra en altta bulunan <?php get_footer()?> kodunun hemen altına da aşağıdaki kodu ekleyip dosyayı kapatabilirsiniz.

<?php
$dosya = fopen($adres, 'w+'); 
fwrite($dosya, ob_get_contents()); 
fclose($dosya); 
ob_end_flush();  
?>
tüm bu adımları yaptığınızda cache aktif olmuş olmalı. bunu kontrol etmek için sayfayı yenileyebilirsiniz. Ama aktif olup olmadığından tam emin olmak için anadizinde bulunan "cache" klasörünün içine bakabilirsiniz.

Şimdi gelelim cache temizleme işine.
  1. wp-admin
  2. wp-content
  3. wp-includes
  4. cache

klasörlerinin bulunduğu dizine cachesil.php adında bir dosya oluşturup aşağıdaki kodu içerisine yerleştirip kaydedin.

cachesil.php
<?php
function sayibul($klasor) {
	$dizi = array(); // dizi oluştur
	$open = opendir($klasor); // klasör aç

		while($q=readdir($open)) {
			if ($q != "." && $q != "..") {
				$dizi[] = $q;
			}
		}

	$sayi = count($dizi); // dosya sayısı
	closedir($open);  // klasörü kapat 
	
	return $sayi; // sayıyı çıktı olarak al
}
?>
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="utf-8" />
<title>oksimoron wordpress cache sistemi</title>
<style type="text/css">
body{background-color:#fff;}
ul{display:block}
li{font-family:"Lucida Grande";font-size:15px;color:#333;}
.silindi {}
</style>
</head>
<body>
<div style="font-size:17px;font-family:Arial;color:#333;">İşlem: <span style="font-weight:bold;color:red;"><a href="<?php $uzanti = $_SERVER['REQUEST_URI']; echo $uzanti; ?>?temizle=tamam">Cache Sil</a></span> // Toplam: <span style="font-weight:bold;color:green;"><?php echo sayibul("onbellek"); ?></span> cache edilmiş sayfa bulundu.</div>
<hr />
<?php

@set_time_limit(0);
$sildim = $_GET["temizle"];
if($sildim == "tamam") {
	
        $oku = opendir("cache");
        
        while ($sonuc = readdir($oku))
        {
            $sonuck = explode(".",$sonuc);
            $sonuck = end($sonuck);
            
                if($sonuck == "cache"){
            
                    unlink("cache/".$sonuc);

            }

                }
									echo '<p style="font-size:24px;color:green;font-weight:bold;">Cache başarıyla boşaltıldı! <span style="color:#333;"><a href="#" onclick="history.back();">Geri dön!</a></span></p>';

}
?>
</body>
</html>
Son olarak https://www.r10.net/cachesil.php şeklinde tarayıcıya yazdığınızda karşısınızda cachelenmiş sayfa sayısı verilecektir. Tek seferde cache temizlemek içinde "Cache Sil" butonuna tıklamanız yeterli olacaktır.

Not: Bu konu hiç bir şey vaadetmez. Denersiniz, hoşunuza gider ve işinize yararsa kullanırsınız. Beğenmezseniz kullanmazsınız. Ben denedim. Kullanıyorum ve memnunum. Herkes faydalansın diye paylaşıyorum. Birbirimizi üzmenin manası yok.

Not2: cache klasörüne chmod 777 değerini vermeyi unutmayın.

Not3: single.php'deki bu işlemler diğer dosyalar içinde kullanılabilir. (örnek: index.php, category.php, tag.php gibi)

Not4: Kullanıp da faydasını gören arkadaşlar konu altına yazarlarsa sevinirim ki en azından kullanmakta tereddüt eden arkadaşlar için bir fikir oluşur.

Öncelikle bu işi paraya çevirmeyip ücretsiz bir şekilde kullanıcıları bilgilendirdiğin için seni tebrik ederim.

Ancak bu senin paylaştığın basit cache mantığı php kullanmaya yeni başlayan bir developer'ın yapmayı akıl edebileceği cinsten primitif bir cache sistemidir.
Cache mantığında PHP ve MqSql'i devreden çıkartma amaçlanmıştır. Senin koda göre PHP asla devreden çıkmıyor, sadece Mysql'i devre dışı bırakarak db'ye sorgu göndermiyorsun ve böylelikle bir miktar site hızlanıyor.

Asıl hız nasıl sağlanır?
O kaydettiğin dosyaları PHP ile çağırmak yerine .htaccess ile yönlendirmeyi başarabilirsen (wp fastest cache ile oluşturulan .htaccess'i inceleyebilirsin) gerçek hızı o zaman yakalarsın. Siteye gelen kullanıcı hiç php ve mysql'e uğramadan Apache üzerinden doğrudan .html statik dosyaya yönlendirilir.