Сегодня я хочу рассказать Вам об одном очень не плохом способе кеширования в WordPress без использования плагинов. При его использовании страница загружается за доли секунд (0.000216 сек - среднее время загрузке на локальном компьютере моего блога), что во много раз быстрее чем при использовании любых плагинов кеширования (для примера среднее время загрузки моего блога на локальном компьютере при использовании WP Super Cache - 0.388 сек). Кроме этого в разы падает нагрузка на процессор и память.
К сожалению у данного способа есть один минус - он полностью исключает работу любых динамических функций (счетчики, голосование), а также возможность оставлять комментарии 🙁 Этот способ идеально подойдет для сателлитов и корпоративных сайтов, а также любых других сайтов где отключены комментарии и не используются счетчики и голосование.
Итак, что же нужно сделать:
1. Создаем папку в корне сайта, называем её cache и ставим на неё права - 777
2. В файле 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; ?>
Вот собственно и все. С помощью 4 строки Вы можете самостоятельно изменять время жизни кеша, для вывода времени загрузки страницы в 5 строке установите 1. Если будут какие либо вопросы, спрашивайте в комментариях 😉
Гениально!
Не подскажите, форма обратной связи (плагин Contact Form 7) с этим прибамбасом работать будет?
А то вкрались какие то сомнения, так как счётчики и формы комментариев отрубаются на глушняк.
Всё удивительное - просто!
Давно искал такую возможность (кэширование). Присмотрел на одном сайте скрипт для этого, платный (не вспомню на вскидку где). А тут всё так просто и шустро (судя по описаниям), надо поставить, посмотреть. Считаю для ГС - самое то должно быть)
Deimos, Спасибо! Буду пробовать!
Самому кэшировать - это конечно хорошо, но такого функционала как у wp-super-cache Вы таким образом не добьетесь. А просто тупо кэшировать - это не интересно.
Deimos, я считаю, что для сайтов визиток глупо использовать такого монстра как WordPress. Для этого полно других небольших CMS, некоторые вообще работают без базы.
Предлагаю в качестве альтернативы потестить скриптик
http://centavrus-opti.ru/skript-keshirovaniya-dlya-wordpress.html
Я бы убрал про сателлиты строчки и так не поймешь что в интернете...
А счетчики какие имеются в виду? Сторонняя статистика тоже не будет работать (LI, Google Analytics и т.д.)?
А счетчики какие имеются в виду? Сторонняя статистика тоже не будет работать (LI, Google Analytics и т.д.)?
java скрипты все будут работать = то есть то что написали - все будет работать!
Ага, понятно, ну это терпимо, попробую; для MFA должно в самый раз подойти.
СТОП!! подскажите а если я пропишу ссылки на категории, получаеться все что в них не будет кешироваться, а значит можно на внутренних стр. будут работать комменты
Гениальный скрипт. Буду использовать на всех своих сайтах. Универсальный способ кеширования, установлю ещё на другие движки.. Спасибо автору..
Понравился скрипт. Только при добавлении фида в фидбурнер, фид не проходит валидацию. Можно как-то исправить?
Денис, про платный скрипт это наверное - Maxsite Cache, но это не совсем одинаковые вещи, тот кеш работает нормально с комментами и сбрасывает кеш при публикации статьи, а этот нет. Но у них и разные назначения 😉