WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Самая быстрая Тема-конструктор для WordPress

Кеширование на 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 не очень силен, буду очень благодарен.

СПАСИБО

0
Kuruz
24 дня назад
  • 1

    Это глупая затея, тк существуют уже плагины для кеширования, которые намного эффективнее и проще и в поддержке и в установке, в чем сакральный смысл создавать свой недокеш?

    Но а если по теме то нужно делать проверку урл который тут: $_SERVER['REQUEST_URI']

    и добавить условие наподобие как тут у вас в коде:

    if (file_exists($filename)) {

    Как проверить урл php https://qna.habr.com/q/409510

    Удачи в построении велосипедов mosking

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация