Кеширование на PHP, без плагинов в Wordpress

12
Y5
На сайте с 14.07.2009
Offline
119
576
Добрый день!

Необходимо сделать простое кеширование на 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) и страницы поиска.
Подскажите пожалуйста, как можно добавить исключения для данных страниц, чтобы они не кешировались?

СПАСИБО.

Подписи пока нет :(
G6
На сайте с 12.07.2007
Offline
175
#1

Не убивайте свой сайт, поставьте нормальный плагин кеша, этому коду уже больше 10 лет. Слишком много разных параметров у кеша, что бы все было так просто)

Очистите трафик сайта от ботов и накруток ПФ https://antibot.worldwebinfo.ru
Y5
На сайте с 14.07.2009
Offline
119
#2
garry69 #:

Не убивайте свой сайт, поставьте нормальный плагин кеша, этому коду уже больше 10 лет. Слишком много разных параметров у кеша, что бы все было так просто)

Плагины кеширования не подходят, так как в основном они ставятся в ошибками из-за версии ПО.
Соответственно ПО не могу обновить, т.к. используются много плагинов старых, которые на новых версиях ПО не работают.

Самое простое, обычное кеширование на PHP.
Комментариев и форм на сайте нет.

G6
На сайте с 12.07.2007
Offline
175
#3
yura5 #:
Самое простое, обычное кеширование на PHP.
Комментариев и форм на сайте нет.

Да дело не в этом, просто вы можете отдавать ошибку кеша ботам и людям, нет контроля заголовков, нет еще кучи всего. 

yura5 #:
Плагины кеширования не подходят, так как в основном они ставятся в ошибками из-за версии ПО.

Так раз нет особых претензий к функционалу, поставьте не свежий плагин кеширования с простыми функциями, проверьте его работу, много в репо wp не молодых плагинов, не обновлявшихся.

LEOnidUKG
На сайте с 25.11.2006
Offline
1758
#4
Можно глупый вопрос. Если у вас на сайте тупо статьи и статика, зачем вам вообще кэширование? WP сам по себе очень быстро работает.
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Y5
На сайте с 14.07.2009
Offline
119
#5
LEOnidUKG #:
Можно глупый вопрос. Если у вас на сайте тупо статьи и статика, зачем вам вообще кэширование? WP сам по себе очень быстро работает.

Это некий каталог, где более 100000 записей и более 5000 категорий, понятно что WP под это дело не пойдет, но решили сделать так.

LEOnidUKG
На сайте с 25.11.2006
Offline
1758
#6
И что, что 100К записей? Сам WP как-то тормозит или что? Генерация первого байта какая?
Y5
На сайте с 14.07.2009
Offline
119
#7
LEOnidUKG #:
И что, что 100К записей? Сам WP как-то тормозит или что? Генерация первого байта какая?

да, проблема в тормозах
страница грузится где-то 1-2 сек.
Идеал 0,1-0,2 сек

S3
На сайте с 29.03.2012
Offline
333
#8
yura5 #:
да, проблема в тормозах

Ну так используйте не непонятный код или плагины а нормальное кэширование - Мемкэш какой или даже вообще Редис)

D8
На сайте с 23.03.2007
Offline
150
#9
можно настроить nginx fastcgi cache с модулем очистки, будет серверное кэширование без плагинов
L
На сайте с 10.02.2015
Offline
238
#10

Denzel82 говорит дело.
Еще как вариант:
1. В кеш ложить только страницы с 200 ответом
2. В кеш не ложить страницы поиска

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий