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- wp-admin
- wp-content
- 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.
- wp-admin
- wp-content
- wp-includes
- 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("cache"); ?></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.