Кеширование на 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
Удачи в построении велосипедов