8.3.x theme.api.php hook_page_attachments_alter(array &$attachments)
8.0.x theme.api.php hook_page_attachments_alter(array &$attachments)
8.1.x theme.api.php hook_page_attachments_alter(array &$attachments)
8.2.x theme.api.php hook_page_attachments_alter(array &$attachments)
8.4.x theme.api.php hook_page_attachments_alter(array &$attachments)

Alter attachments (typically assets) to a page before it is rendered.

Use this hook when you want to remove or alter attachments on the page, or add attachments to the page that depend on another module's attachments (this hook runs after hook_page_attachments().

If you try to add anything but #attached and #cache to the array, an exception is thrown.

Parameters

array &$attachments: Array of all attachments provided by hook_page_attachments() implementations.

See also

hook_page_attachments()

Related topics

1 string reference to 'hook_page_attachments_alter'
PageRenderTest::testHookPageAlter in core/modules/system/tests/src/Kernel/Common/PageRenderTest.php
Tests hook_page_attachments_alter() exceptions.
3 functions implement hook_page_attachments_alter()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

common_test_page_attachments_alter in core/modules/system/tests/modules/common_test/common_test.module
Implements hook_page_attachments_alter().
system_module_test_page_attachments_alter in core/modules/system/tests/modules/system_module_test/system_module_test.module
Implements hook_page_attachments_alter().
taxonomy_page_attachments_alter in core/modules/taxonomy/taxonomy.module
Implements hook_page_attachments_alter().
1 invocation of hook_page_attachments_alter()
HtmlRenderer::invokePageAttachmentHooks in core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
Invokes the page attachment hooks.

File

core/lib/Drupal/Core/Render/theme.api.php, line 1039
Hooks and documentation related to the theme and render system.

Code

function hook_page_attachments_alter(array &$attachments) {
  // Conditionally remove an asset.
  if (in_array('core/jquery', $attachments['#attached']['library'])) {
    $index = array_search('core/jquery', $attachments['#attached']['library']);
    unset($attachments['#attached']['library'][$index]);
  }
}