Функция rel_canonical() в WordPress
Функция rel_canonical()
используется для вывода тега rel=canonical
на страницах с уникальным контентом. Это помогает поисковым системам понять, какая версия страницы является основной, что особенно важно для SEO.
Параметры функции
Функция не принимает никаких параметров и не использует хуки.
Возвращаемое значение
Функция ничего не возвращает (null).
Как использовать
Просто вызовите функцию rel_canonical();
в коде вашего шаблона.
Примеры использования
Пример 1: Добавление канонической ссылки в заголовок страницы
Чтобы все страницы с контентом (например, записи) имели каноническую ссылку, добавьте следующий код в файл header.php
в секцию <head>
:
<?php rel_canonical(); ?>
Этот код выведет строку в формате:
Пример 2: Удаление канонических ссылок на страницах пагинации комментариев
На страницах пагинации комментариев канонический URL может выглядеть так: example.com/about/comment-page-1/
. Это может создавать дублирование контента, что нежелательно.
Чтобы исправить это, используйте следующий код:
add_filter( 'get_canonical_url', 'remove_comment_page_canonical_url', 10, 2 );
function remove_comment_page_canonical_url( $canonical_url, $post ) {
// Для страниц комментариев текущего поста
if ( get_query_var( 'cpage', 0 ) && $post->ID === get_queried_object_id() ) {
$canonical_url = get_permalink( $post );
}
return $canonical_url;
}
Этот код изменяет канонический URL для страниц комментариев, чтобы он указывал на основной URL поста.
История изменений
- С версии 2.9.0 — функция была введена.
- С версии 4.6.0 — функция была адаптирована для использования
wp_get_canonical_url()
.
Код функции rel_canonical()
Вот код самой функции rel_canonical()
из файла wp-includes/link-template.php
:
function rel_canonical() {
if ( ! is_singular() ) {
return;
}
$id = get_queried_object_id();
if ( 0 === $id ) {
return;
}
$url = wp_get_canonical_url( $id );
if ( ! empty( $url ) ) {
echo '' . "n";
}
}
Объяснение кода
- Проверка на уникальность страницы: Функция сначала проверяет, является ли текущая страница уникальной с помощью
is_singular()
. - Получение ID поста: Затем она получает ID текущего поста с помощью
get_queried_object_id()
. - Получение канонического URL: С помощью
wp_get_canonical_url($id)
функция получает основной URL поста. - Вывод канонического тега: Если URL не пустой, функция выводит тег
link
с атрибутомrel=canonical
.
Эта функция очень полезна для улучшения SEO вашего сайта на WordPress, особенно если у вас много схожего или дублирующегося контента.