rel_canonical()
Виводить тег <link rel=canonical> на екран. Автоматично викликається під час події wp_head , щоб вивести канонічне посилання в head документа.
Працює лише для сторінок типу is_singular() .
Щоб вимкнути канонічне посилання в head частини, потрібно видалити хук:
remove_action( 'wp_head', 'rel_canonical');
Метатег сanonical
використовується пошуковими системами тільки в одному випадку: коли пошукова система виявила дублюючий контент, і при цьому у неї не достатньо своїх підстав для вибору канонічної адреси. У всіх інших випадках canonical ігнорується.
wp_get_canonical_url()
Хуків немає.
Повертає
null
. Виводить на екран html тег<link rel='canonical' href='$link' />
Використання
rel_canonical();
Приклади
#1 Виведемо в head частину канонічне посилання
Додамо наступний код header.php в head частину документа, щоб на всіх is_single() сторінках вивести канонічне посилання:
<?php rel_canonical(); ?> // виведе: <link rel='canonical' href='$link' />n
#2 Видалення канонічних посилань на сторінках пагінації коментарів
На сторінках пагінації коментарів канонічний URL має такий вигляд: сайт.ru/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 ){ // for comment page of current post only if ( get_query_var( 'cpage', 0 ) && $post->ID === get_queried_object_id() ) { $canonical_url = get_permalink($post); } return $canonical_url; }
Докладно про цей код я відповів у питанні .
список змін
З версії 2.9.0 | Введено. |
З версії 4.6.0 | Adjusted to use wp_get_canonical_url() . |
Код rel_canonical() rel canonical WP 6.0.2
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 '<link rel="canonical" href="' . esc_url( $url ) . '" />' . "n"; } }