Функция wp_get_canonical_url()
возвращает канонический URL записи, страницы или любого другого объекта в WordPress. Канонический URL используется для указания поисковым системам, какой URL является основным для данного контента, что помогает избежать дублирования страниц и повысить SEO-эффективность сайта.
wp_get_canonical_url( int|WP_Post $post = null ): string|false
Параметры
- $post (int | WP_Post) — Идентификатор записи или объект
WP_Post
. Если не указан, используется текущая запись из глобальной переменной$post
.
Возвращаемое значение
Возвращает строку с каноническим URL для записи, либо false
, если запись не найдена или не опубликована.
Описание работы
Когда запрашивается канонический URL для записи, WordPress проверяет, есть ли указанный пост, опубликован ли он, и, если нужно, добавляет параметры для пагинации, например, если это страница комментариев или дополнительная страница поста. Функция часто используется в <link rel="canonical" />
, чтобы поисковые системы знали основной URL страницы.
Пример 1: Получение канонического URL для конкретной записи
Если вам нужно получить канонический URL для записи с определенным ID, например, 803, можно сделать это следующим образом:
$canonical_url = wp_get_canonical_url( 123 );
if ( $canonical_url ) {
echo 'Канонический URL для записи 123: ' . $canonical_url;
} else {
echo 'Запись с ID 123 не найдена или не опубликована.';
}
В этом примере функция возвращает канонический URL для записи с ID 123, например:
http://example.com/id_123/post-title
Пример 2: Канонический URL для текущей страницы
Когда wp_get_canonical_url()
вызывается без параметров, она автоматически возвращает канонический URL для текущего поста или страницы. Этот метод полезен, если вы хотите динамически генерировать каноническую ссылку в <head>
страницы.
add_action( 'wp_head', 'add_custom_canonical_tag' );
function add_custom_canonical_tag() {
if ( is_single() || is_page() ) {
$canonical_url = wp_get_canonical_url();
if ( $canonical_url ) {
echo '<link rel="canonical" href="' . esc_url( $canonical_url ) . '" />';
}
}
}
Этот код добавляет канонический URL в <head>
для каждой отдельной записи или страницы.
Пример 3: Канонический URL для страницы пагинации
wp_get_canonical_url()
также учитывает страницы пагинации и создает канонический URL для каждой страницы отдельно. Рассмотрим пример, когда используется URL с пагинацией комментариев:
if ( is_singular() && get_query_var( 'cpage' ) ) {
$canonical_url = wp_get_canonical_url();
echo 'Канонический URL для страницы комментариев: ' . esc_url( $canonical_url );
}
Допустим, на второй странице комментариев к записи функция вернет что-то вроде:
http://example.com/post-title/comment-page-2
Пример 4: Использование функции внутри шаблона для вывода канонического URL
Если вы хотите использовать функцию wp_get_canonical_url()
в шаблоне, чтобы динамически выводить канонический URL для текущей записи, это можно сделать следующим образом:
<?php if ( is_singular() ) : ?>
<p>Канонический URL: <?php echo esc_url( wp_get_canonical_url() ); ?></p>
<?php endif; ?>
Этот код проверяет, является ли текущая страница записью (is_singular()
возвращает true
для записей, страниц и произвольных типов записей) и выводит канонический URL на странице.
Заключение
Функция wp_get_canonical_url()
— это эффективный инструмент для управления каноническими ссылками в WordPress, что помогает избежать проблем с дублирующимся контентом и улучшает SEO-оптимизацию сайта. С её помощью можно получить канонический URL для конкретных записей или страниц, а также для страниц с пагинацией, что особенно полезно при формировании ссылок в шаблонах и заголовках.