function taxonomy_page_attachments_alter

Implements hook_page_attachments_alter().

File

core/modules/taxonomy/taxonomy.module, line 105

Code

function taxonomy_page_attachments_alter(array &$page) {
    $route_match = \Drupal::routeMatch();
    if ($route_match->getRouteName() == 'entity.taxonomy_term.canonical' && ($term = $route_match->getParameter('taxonomy_term')) && $term instanceof TermInterface) {
        foreach ($term->uriRelationships() as $rel) {
            // Set the URI relationships, like canonical.
            $page['#attached']['html_head_link'][] = [
                [
                    'rel' => $rel,
                    'href' => $term->toUrl($rel)
                        ->toString(),
                ],
                TRUE,
            ];
            // Set the term path as the canonical URL to prevent duplicate content.
            if ($rel == 'canonical') {
                // Set the non-aliased canonical path as a default shortlink.
                $page['#attached']['html_head_link'][] = [
                    [
                        'rel' => 'shortlink',
                        'href' => $term->toUrl($rel, [
                            'alias' => TRUE,
                        ])
                            ->toString(),
                    ],
                    TRUE,
                ];
            }
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.