You are here

function _external_hreflang_get_metatags in External Hreflang 8

Load the meta tags by processing the route parameters.

Return value

mixed Array of hreflang tags or NULL.

See also

metatag_get_tags_from_route()

1 call to _external_hreflang_get_metatags()
external_hreflang_simple_sitemap_links_alter in ./external_hreflang.module
Implements hook_simple_sitemap_links_alter().

File

./external_hreflang.module, line 63
Module file.

Code

function _external_hreflang_get_metatags(string $entity_type_id = '', string $bundle = '') {

  /** @var \Drupal\Core\Entity\EntityTypeManagerInterface $global_metatag_manager */
  $global_metatag_manager = \Drupal::entityTypeManager()
    ->getStorage('metatag_defaults');

  // First we load global defaults.
  $metatags = $global_metatag_manager
    ->load('global');
  if (!$metatags) {
    return NULL;
  }

  // Than we load for front page.
  if ($entity_type_id) {
    $entity_metatags = $global_metatag_manager
      ->load($entity_type_id);
    $metatags
      ->overwriteTags($entity_metatags
      ->get('tags'));

    // Check if bundle overrides should be added.
    $bundle_metatags = $global_metatag_manager
      ->load($entity_type_id . '__' . $bundle);
    if ($bundle_metatags != NULL) {

      // Merge with existing defaults.
      $metatags
        ->overwriteTags($bundle_metatags
        ->get('tags'));
    }
  }
  else {
    $front_metatags = $global_metatag_manager
      ->load('front');
    $metatags
      ->overwriteTags($front_metatags
      ->get('tags'));
  }
  $hreflag_tags = $metatags
    ->get('tags')['hreflang_external'] ?? '';
  return ExternalHreflang::getHrefLangsArrayFromString($hreflag_tags);
}