Кеширование в WordPress без использования плагинов

Сегодня хочу рассказать Вам об одном очень не плохом способе кеширования в WordPress без использования плагинов. При его использовании страница загружается за доли секунд (0.000216 сек — среднее время загрузке на локальном компьютере моего блога), что во много раз быстрее чем при использовании любых плагинов кеширования (для примера среднее время загрузки моего блога на локальном компьютере при использовании WP Super Cache — 0.388 сек). Кроме этого в разы падает нагрузка на процессор и память.

К сожалению у данного способа есть один минус — он полностью исключает работу любых динамических функций (счетчики, голосование), а также возможность оставлять комментарии :-( Этот способ идеально подойдет для сателлитов и корпоративных сайтов, а также любых других сайтов где отключены комментарии и не используются счетчики и голосование.

<?php
$start = microtime();
$filename = 'cache/'.md5($_SERVER['REQUEST_URI']).'.html';
$cached = false;
$time = 4 * 60 * 60; // Время кеша в секундах (4*60*60 = 4 часа)
$stat = 0; // Установите 1 для вывода времени загрузки страницы (по умолчанию 0)

if (file_exists($filename)) {
if ((time()-filemtime($filename))<$time) {
$cached = true;
} else {
unlink($filename);
$cached = false;
}
}

if ($cached) {
readfile($filename);
} else {
ob_start();

// WP
define('WP_USE_THEMES', true);
require('./wp-blog-header.php');
//

$text = ob_get_clean();

$fh = fopen($filename, 'w+');
fwrite($fh, $text);
fclose($fh);

echo $text;
}
$finish = microtime();
if ($stat==1) echo $finish-$start;
?>

Итак, что же нужно сделать:

1. Создаем папку в корне сайта, называем её cache и ставим на неё права — 777
2. В файле index.php в корне сайта заменяем то, что там есть на этот код:

Вот собственно и все. С помощью 4 строки Вы можете самостоятельно изменять время жизни кеша, для вывода времени загрузки страницы в 5 строке установите 1. Если будут какие либо вопросы, спрашивайте в комментари;-)
Информация с wp-info.ru

Мой блог находят по следующим фразам



  • http://localhost некто

    не работает данный метод

  • admin

    @ некто:

    Все исправил )