rarst/fragment-cache

WordPress 插件,用于缓存重量级前端元素的部分和异步内容。

安装次数: 13,236

依赖项: 2

建议者: 0

安全: 0

星级: 139

关注者: 15

分支: 9

开放问题: 0

类型:wordpress-plugin

1.3.1 2016-12-11 19:27 UTC

This package is auto-updated.

Last update: 2024-09-20 05:54:26 UTC


README

Scrutinizer Code Quality

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+)