fernandomullerjr
Forum Replies Created
Viewing 1 replies (of 1 total)
-
Forum: Plugins
In reply to: [Polylang] Mismatched hreflang and HTML lang declarationsin the meantime, I found the solution for my case
I needed to adjust the php code
I edited the functions.php file in my themeand added the code below:
add_filter('language_attributes', 'custom_language_attributes', 10, 2); add_filter('pll_rel_hreflang_attributes', 'custom_hreflang_attributes'); function custom_language_attributes($output, $doctype) { if (!function_exists('pll_current_language')) { return $output; } $language = pll_current_language('slug'); if ($language === 'en' || $language === 'en-US') { return str_replace('lang="en"', 'lang="en-US"', $output); } elseif ($language === 'pt' || $language === 'pt-br') { return str_replace('lang="pt-BR"', 'lang="pt-br"', $output); } return $output; } function custom_hreflang_attributes($hreflang_attributes) { $modified_attributes = []; foreach ($hreflang_attributes as $lang => $url) { if ($lang === 'pt' || $lang === 'pt-BR') { $modified_attributes['pt-br'] = $url; } elseif ($lang === 'en' || $lang === 'en-US') { $modified_attributes['en-US'] = $url; } else { $modified_attributes[$lang] = $url; } } return $modified_attributes; }
This code does the following:
- Keeps the
lang
attribute of the<html>
tag as “en-US” for English pages. - Sets the
lang
attribute to “pt-br” for Portuguese pages. - Modifies the
hreflang
attributes of the<link>
tags to use “en-US” for English and “pt-br” for Portuguese.
Now everything is ok!
- Keeps the
Viewing 1 replies (of 1 total)