change canonical URL in drupal 8 & 9

0
(0)

Code snippet that can be used to change canonical URL in drupal 8 & 9.

/**
 * @param array $page
 */
function MODULENAME_page_attachments_alter(array &$page)
{
    $route = Drupal::routeMatch()->getRouteObject();
    if ($route) {
        $view_id = $route->getDefault('view_id');

        if (!empty($view_id)) {

            if ($view_id == 'news') {

              // example www.example.com/news?category=drupal
              $link_url = Drupal::service('path.current')->getPath();


                $og_link = array(
                    '#tag' => 'link',
                    '#attributes' => array(
                        'rel' => 'canonical',
                        'canonical_url' => $link_url,
                    ),
                );
                $page['#attached']['html_head']['canonical_url'] = [$og_link, 'canonical_url'];

            }
        }
    }
}

Similar Posts:

746

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

Scroll to Top