Канонические ссылки в Yoast SEO без пагинации — удаление /page/2
Если вам требуется всегда указывать тег rel="canonical"
на первую страницу пагинации в категориях и архивах, то есть:<link rel="canonical" href="https://hello-wp.ru/articles/" />
вместо<link rel="canonical" href="https://hello-wp.ru/articles/page/2" />
с установленным плагином yoast seo, то просто вставьте в файл functions.php вашей темы данный фильтр:
//canonical url first page
add_filter('wpseo_canonical', 'my_wpseo_canonical');
function my_wpseo_canonical($canonical) {
if (is_paged()) {
if (is_home()) {
return home_url();
}
if (is_archive()) {
$url = get_term_link(get_queried_object_id());
return $url;
}
}
return $canonical;
}
Произвольный тип записи и его Архив
На случай, если нужно также применить canonical и для страниц архивов произвольного типа записи (custom post type):
//canonical url first page with custom post type
add_filter('wpseo_canonical', 'my_wpseo_canonical');
function my_wpseo_canonical($canonical) {
if (is_paged()) {
if (is_home()) {
return home_url();
}
if (is_category()) {
$url = get_term_link(get_queried_object_id());
return $url;
}
elseif (is_post_type_archive('portfolio')) {
$url = home_url() . '/portfolio/';
return $url;
}
}
return $canonical;
}
Например, ваш произвольный тип записи имеет slug portfolio, а страница архива включена с помощью 'has_archive' => true,
указываем URL /portfolio/ (или же иное, если изменяли слаг через rewrite)
Д
ля определения нахождения пользователя на архивной странице записей произвольного типа — используем is_post_type_archive($post_types)
Данный код актуален и для мультиязычности polylang.
//комментарии