初めに
WordPressのSuperCacheが凄く便利なんだけど、ブラウザによってはオフにしたくて、でもその指定が面倒だったのでカスタマイズしてみた。
具体的にはAndroidのFireFoxでオフにしたかったんだけど、それだとワイルドカード指定とかが必要で、そういったことができないかなーとおもったけど出来なかったので本体にパッチをあてた。
修正点
該当のコード
wp-super-cache\wp-cache-phase1.php
function wp_cache_user_agent_is_rejected() {
global $cache_rejected_user_agent;
if (!function_exists('apache_request_headers')) return false;
$headers = apache_request_headers();
if (!isset($headers["User-Agent"])) return false;
if ( false == is_array( $cache_rejected_user_agent ) )
return false;
foreach ($cache_rejected_user_agent as $expr) {
if (strlen($expr) > 0 && preg_match('/'.$expr.'/', $headers["User-Agent"]))
return true;
}
return false;
}
wp-super-cache\wp-cache-phase1.php
の516行目付近にあるwp_cache_user_agent_is_rejected
を書き換え。
if (strlen($expr) > 0 && stristr($headers["User-Agent"], $expr))
となっているところを
if (strlen($expr) > 0 && preg_match('/'.$expr.'/', $headers["User-Agent"]))
とした。