/Drupal 8

function hook_block_build_alter

hook_block_build_alter(array &$build, \Drupal\Core\Block\BlockPluginInterface $block)

Alter the result of \Drupal\Core\Block\BlockBase::build().

Unlike hook_block_view_alter(), this hook is called very early, before the block is being assembled. Therefore, it is early enough to alter the cacheability metadata (change #cache), or to explicitly placeholder the block (set #create_placeholder).

In addition to hook_block_build_alter(), which is called for all blocks, there is hook_block_build_BASE_BLOCK_ID_alter(), which can be used to target a specific block or set of similar blocks.


array &$build: A renderable array of data, only containing #cache.

\Drupal\Core\Block\BlockPluginInterface $block: The block plugin instance.

See also


Entity CRUD, editing, and view hooks

Related topics

Block API
Information about the classes and interfaces that make up the Block API.
Define functions that alter the behavior of Drupal core.


core/modules/block/block.api.php, line 151
Hooks provided by the Block module.


function hook_block_build_alter(array &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
  // Add the 'user' cache context to some blocks.
  if ($some_condition) {
    $build['#contexts'][] = 'user';

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.