WordPress как на ладони
wordpress jino

rel=canonical: как сделать канонический url самой записи на страницах пагинации комментариев?

Приветствую!

Подскажи пожалуйста, хочу использовать пагинацию комментариев, но ссылки имеют вид сайт.ru/about/comment-page-1/#comments.

Как сделать, чтобы канонической на всех страницах пагинации комментариев была основная сайт.ru/about/, а не сайт.ru/about/comment-page-1/#comments?

0
Гость 1.7 года назад
  • 0
    Kama4660

    За вывод канонических ссылок в WordPress отвечает функция rel_canonical(). Подключается она через фильтр wp_head.

    Так как функция не предоставляет никаких фильтров, чтобы изменить её поведение вам нужно удалить фильтр и добавить свой, при этом создав аналогичную функцию, копируем код функции и изменяем его:

    remove_action( 'wp_head', 'rel_canonical');
    add_action( 'wp_head', 'kama_rel_canonical');
    function kama_rel_canonical(){
    	if ( ! is_singular() ) {
    		return;
    	}
    
    	if ( ! $id = get_queried_object_id() ) {
    		return;
    	}
    
    	$url = get_permalink( $id );
    
    	$page = get_query_var( 'page' );
    	if ( $page >= 2 ) {
    		if ( '' == get_option( 'permalink_structure' ) ) {
    			$url = add_query_arg( 'page', $page, $url );
    		} else {
    			$url = trailingslashit( $url ) . user_trailingslashit( $page, 'single_paged' );
    		}
    	}
    
    	/* этот блок отвечает за пагинацию комментариев, поэтому его закроем
    	$cpage = get_query_var( 'cpage' );
    	if ( $cpage ) {
    		$url = get_comments_pagenum_link( $cpage );
    	}
    	*/
    
    	echo '<link rel="canonical" href="' . esc_url( $url ) . "\" />\n";
    }

    Добавьте код в functions.php и Все готово!

    Теперь любая страница комментариев будет иметь в канонической ссылке основной URL записи.

    Сергей 1.7 года назад

    Спасибо тебе огромное, сколько не обращался к тебе за помощью, всегда получал положительный ответ. Удачи тебе и процветания твоему блогу!!!

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.