Кеширование на WordPress без плагинов, на PHP
Добрый день!
Возникла необходимость сделать простой кеш без плагинов.
Нашел код:
<?php
$start = microtime();
$filename = 'cache/'.md5($_SERVER['REQUEST_URI']).'.html';
$cached = false;
$time = 4000 * 6000 * 6000; // Время кеша в секундах (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;
?>
Подскажите пожалуйста, как исключить из кеша страницы с ошибками (404) и страницы поиска?
В PHP не очень силен, буду очень благодарен.
СПАСИБО
Это глупая затея, тк существуют уже плагины для кеширования, которые намного эффективнее и проще и в поддержке и в установке, в чем сакральный смысл создавать свой недокеш?
Но а если по теме то нужно делать проверку урл который тут: $_SERVER['REQUEST_URI']
и добавить условие наподобие как тут у вас в коде:
if (file_exists($filename)) {
Как проверить урл php https://qna.habr.com/q/409510
Удачи в построении велосипедов )))