如何通过代码修改 WP Rocket 的参数(参数覆盖 / 自定义配置),以下是一份全面整理的说明,适用于你使用的 WP Rocket 2.9.8 修复版或新版插件。
⚙️ WP Rocket 参数修改指南(wp-rocket-change-parameters)
WP Rocket 提供一套丰富的参数机制,可通过 过滤器(filter) 或 常量(constant) 在 wp-config.php 或 functions.php 中进行自定义控制。这在你使用修复版 2.9.8 时尤其重要,可避免直接改动插件核心文件。
✅ 一、通过
wp-config.php
修改核心行为(常量)
将以下内容添加至 wp-config.php,define( ‘WP_CACHE’, true ); 上方或下方。
常量
|
作用
|
WP_ROCKET_CACHE_ENABLED
|
是否启用缓存(默认 true)
|
WP_ROCKET_MOBILE_CACHE
|
启用移动缓存
|
WP_ROCKET_SSL_CACHE
|
启用 SSL 页面缓存
|
WP_ROCKET_COOKIE_HASH
|
手动设定 cookie 哈希,避免登录缓存冲突
|
DONOTROCKETOPTIMIZE
|
禁用所有优化(适用于调试时)
|
示例:
define( 'WP_ROCKET_CACHE_ENABLED', true );
define( 'WP_ROCKET_MOBILE_CACHE', true );
define( 'WP_ROCKET_SSL_CACHE', true );
define( 'DONOTROCKETOPTIMIZE', false );
✅ 二、通过 Hook 过滤器修改设置(推荐方式)
🔹 1. 修改默认缓存寿命(单位:秒)
add_filter( 'rocket_cache_lifetime', function( $lifetime ) {
return 3600 * 12; // 设置为 12 小时
});
🔹 2. 添加排除页面(不缓存)
add_filter( 'rocket_cache_reject_uri', function( $uris ) {
$uris[] = '/login';
$uris[] = '/user/*';
return $uris;
});
🔹 3. 添加排除 Cookie(用户登录后不缓存)
add_filter( 'rocket_cache_reject_cookies', function( $cookies ) {
$cookies[] = 'wordpress_logged_in';
$cookies[] = 'my_custom_cookie';
return $cookies;
});
🔹 4. 添加排除 User Agent(设备、爬虫)
add_filter( 'rocket_cache_reject_ua', function( $uas ) {
$uas[] = 'Lighthouse'; // 排除 Google Lighthouse 测速工具
return $uas;
});
🔹 5. 指定缓存目录位置(高级用法)
add_filter( 'rocket_cache_dir', function( $dir ) {
return '/custom/path/to/wp-rocket-cache/';
});
✅ 三、移动缓存独立化(为手机和 PC 生成不同缓存)
若你希望针对移动端生成独立缓存:
define( 'WP_ROCKET_MOBILE_CACHE', true );
define( 'WP_ROCKET_SEPARATE_MOBILE_CACHE', true );
📌 2.9.8 版本部分移动端 UA 匹配逻辑较旧,建议你修复 /inc/front/device.class.php 中的正则表达式,以支持新版浏览器。
✅ 四、禁用 CDN 替换行为(避免用户登录时资源 404)
add_filter( 'rocket_cdn_reject_files', function( $files ) {
$files[] = 'wp-login.php';
$files[] = 'user-dashboard';
return $files;
});
✅ 五、在多站点中每站独立设置
WP Rocket 默认不支持每个子站单独配置(尤其 2.9.8 版本),你可以在子站 functions.php 中加入条件限制:
if ( get_current_blog_id() === 2 ) {
add_filter( 'rocket_cache_lifetime', function( $lifetime ) {
return 3600; // 子站2设置为1小时
});
}
🧾 小结:wp-rocket-change-parameters 用法总结
方式
|
场景
|
示例
|
wp-config.php 常量
|
启用/关闭核心功能
|
define(‘WP_ROCKET_CACHE_ENABLED’, false);
|
filter 钩子
|
精细调整行为
|
缓存时长、排除路径、CDN 规则等
|
多站点兼容
|
get_current_blog_id() 分站设定
|
每个站点不同设置策略
|