【发布时间】:2017-12-03 18:52:00
【问题描述】:
我想知道如何为视图创建的所有块关闭块缓存。如果可能的话,我想从我的主题中做到这一点。我的初步研究表明,使用 hook_block_view_BASE_BLOCK_ID_alter() 或许能够做到这一点。
我要为其关闭缓存的视图的机器名称为 background_image。我的主题名为 my_theme。我在 my_theme.theme 中尝试过,但没有成功:
/*
* Implements hook_block_view_BASE_BLOCK_ID_alter().
*/
function my_theme_block_view_background_image_alter(array &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
$build['#cache']['max-age'] = 0;
}
我也尝试过使用回调:
/*
* Implements hook_block_view_BASE_BLOCK_ID_alter().
*/
function my_theme_block_view_background_image_alter(array &$build, BlockPluginInterface $block) {
$build['#pre_render'][] = '_background_image_block_pre_render';
}
/**
* Pre-render callback
*/
function _background_image_block_pre_render(array $build) {
$build = array(
'#cache' => array('max-age' => 0),
);
return $build;
}
提前致谢。
【问题讨论】: