rarst / fragment-cache
WordPress 插件,用于缓存重量级前端元素的部分和异步内容。
1.3.1
2016-12-11 19:27 UTC
Requires
- php: >=5.3
- composer/installers: ~1.0
- markjaquith/wp-tlc-transients: ~1.0
- pimple/pimple: ~3.0
Suggests
- rarst/update-blocker: Prevents invalid updates from official repositories
README
Fragment Cache 是一个用于缓存重量级前端元素的部分和异步内容的 WordPress 插件。它目前支持缓存导航菜单、小工具和画廊。
缓存基于 transients API 构建(通过 TLC Transients 库提供的增强功能),提供软过期和透明对象缓存支持。
安装
从 发布部分 下载插件存档。
或者通过 Composer 在插件目录中安装
composer create-project rarst/fragment-cache --no-dev
常见问题解答
为什么片段不识别已登录用户/当前页面?
Fragment Cache 实现了软过期 - 当片段过期时,它们将异步重新生成,不会在前端页面加载中花费时间。副作用是,无法精确且普遍地保留上下文。
必须了解用户或其他上下文信息的片段应排除在缓存之外或通过自定义实现处理,以正确处理特定上下文。
如何禁用缓存?
禁用处理器
可以通过操作主插件对象禁用片段类型的缓存
global $fragment_cache; // completely remove handler, only use before init unset( $fragment_cache['widget'] ); // or disable handler, use after init $fragment_cache['widget']->disable();
跳过单个片段
可以通过使用 fc_skip_cache
钩子禁用单个片段的缓存
add_filter( 'fc_skip_cache', function ( $skip, $type, $name, $args, $salt ) { // Widget by class. if ( 'widget' === $type && is_a( $args['callback'][0], 'WP_Widget_Meta' ) ) { return true; } // Menu by theme location. if ( 'menu' === $type && isset( $args['theme_location'] ) && 'header' === $args['theme_location'] ) { return true; } // Menu by name. if ( 'menu' === $type && isset( $args['menu'] ) ) { if ( 'Menu with login' === $args['menu'] ) { return true; } if ( is_a( $args['menu'], 'WP_Term' ) && 'Menu with login' === $args['menu']->name ) { return true; } } // Gallery by ID of post. if ( 'gallery' === $type && 123 === $args['post_id'] ) { return true; } return $skip; }, 10, 5 );
许可证信息
Fragment Cache 自有代码根据 GPLv2+ 许可证授权,并使用了以下代码:
- Composer (MIT)
- Pimple (MIT)
- TLC Transients (GPLv2+)