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

Все знают про плагины WordPress предназанченные для кеширования сайта, но все знают, как организовать кеширование без них. Именно об этом пойдет речь в данной статье. Вы думаете, что такое не возможно? Тогда вы глубоко заблуждаетесь. Читайте далее и узнаете как создать кеширование в WordPress без плагинов.

Способ описанный ниже позволит ускорить загрузку страницы в несколько раз по сравнению с использованием плагинов. К сожалению за быструю скорость работы придется заплатить потерей некоторого функционала. В данном случае вы не сможете использовать динамические функции. Голосование, счетчики и комментарии перестанут функционировать в динамическом режиме.

Если для вас это не критично, то приступим к организации кеширования. Для начала создайте каталог cache в корне вашего сайта. Затем поставьте на нее права 777. Далее берете код, который представлен ниже и помещаете в файл index.php, который находится в корне вашего сайта.

<?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;
?>

Вот такой простой способ организовать кеширование на WordPress без плагинов, который позволит уменьшить нагрузку на сайт.

Update: поправил верстку, а то не удобно было читать код.

4 комментария

  1. Что бы исключить из кеширования какую-либо страницу можно использовать следующее условие

    if($_SERVER[‘REQUEST_URI’] == ‘/contact-form/’) {

  2. РУсланыч, в данном случае происходит кеширование запрашиваемой страницы. Проверяется существует ли такая закешированная страница и если она существует, то сверяется дата создания с заданным временем существования. Если все хорошо, то отдаем траницу из кеша, а иначе создаем её.

    За счет того, что страница создается один раз на заданное время, мы экономим на генерации и обращениях к базе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *