Коректний 404 у WordPress Tiniest Super Cache
Чудовий кешуючий плаґін WordPress Tiniest Super Cache чудовий тим що швидкий як блискавка. Недоліків маса – виправляємо. Одигнм з недоліків є некоректна обробка 404 сторінок. А точніше, 404 сторінку, яку згенерував вордпрес, плагін кешує і віддає з кодом 200. Одним словом – бардак.
Нам понадобиться функція:
if (!function_exists(‘http_response_code’)) {
function http_response_code($code = NULL) {if ($code !== NULL) {
$text = ‘Not Found’;
$protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : ‘HTTP/1.0′);
header($protocol . ‘ ‘ . $code . ‘ ‘ . $text);
$GLOBALS['http_response_code'] = $code;
} else {
$code = (isset($GLOBALS['http_response_code']) ? $GLOBALS['http_response_code'] : 200);
}
return $code;
}
}
Далі в файлі плаґіну wptsc-engine.php шукаємо рядок “@file_put_contents($chfile,$gcnt);” і заміняємо його на:
if (strpos($gcnt,’<title>Нічого не знайдено’) !== false) {
http_response_code(404);
} else { @file_put_contents($chfile,$gcnt); }
Упс, тут “<title>Нічого не знайдено” замініть на вашу унікальну ознаку 404 сторінки. Таким чином, 404 сторінка не кешуватиметься і віддаватиметься з коректним кодом 404 а не 200. Бажаєте кешувати 404ті результати? Просто допишіть @file_put_contents($chfile,$gcnt); після виклику функції http_response_code(404);
Блискавичних вордпресів!