function metatag_get_tags_from_route in Metatag 8
Load the meta tags by processing the route parameters.
Return value
mixed Array of meta tags or NULL.
5 calls to metatag_get_tags_from_route()
- MetatagNormalizer::normalize in src/
Normalizer/ MetatagNormalizer.php - Normalizes an object into a set of arrays/scalars.
- metatag_generate_entity_metatags in ./
metatag.module - Turn the meta tags for an entity into a human readable structure.
- metatag_page_attachments in ./
metatag.module - Implements hook_page_attachments().
- metatag_preprocess_html in ./
metatag.module - Implements template_preprocess_html().
- _metatag_remove_duplicate_entity_tags in ./
metatag.module - Remove duplicate entity tags from a build.
File
- ./
metatag.module, line 490 - Contains metatag.module.
Code
function metatag_get_tags_from_route($entity = NULL) {
$metatag_manager = \Drupal::service('metatag.manager');
// First, get defaults.
$metatags = metatag_get_default_tags($entity);
if (!$metatags) {
return NULL;
}
// Then, set tag overrides for this particular entity.
if (!$entity) {
$entity = metatag_get_route_entity();
}
if (!empty($entity) && $entity instanceof ContentEntityInterface) {
// If content entity does not have an ID the page is likely an "Add" page,
// so do not generate meta tags for entity which has not been created yet.
if (!$entity
->id()) {
return NULL;
}
foreach ($metatag_manager
->tagsFromEntity($entity) as $tag => $data) {
$metatags[$tag] = $data;
}
}
// Trigger hook_metatags_alter().
// Allow modules to override tags or the entity used for token replacements.
$context = [
'entity' => &$entity,
];
\Drupal::service('module_handler')
->alter('metatags', $metatags, $context);
// If the entity was changed above, use that for generating the meta tags.
if (isset($context['entity'])) {
$entity = $context['entity'];
}
return $metatag_manager
->generateElements($metatags, $entity);
}