WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Добавить каноникал на странице shop

Добавил каноникал, который ведет на основную страницу для страниц пагинации категории, и меток. У меня плагин rank math для сео. Но в woocommerce еще есть архив товаров shop который просто является обычной страницей. Вот код

//работает
add_filter( 'rank_math/frontend/canonical', function( $canonical ) {
	if ( is_tax( 'product_cat' ) && is_paged() ) {
		$object = get_queried_object();
		return get_term_link( $object->term_id );
	}
	return $canonical;
});
//работает 
add_filter( 'rank_math/frontend/canonical', function( $canonical ) {
	if ( is_tax( 'product_tag' ) && is_paged() ) {
		$object = get_queried_object();
		return get_term_link( $object->term_id );
	}
	return $canonical;
});
//не работает
add_filter( 'rank_math/frontend/canonical', function( $canonical ) {
	if ( is_page() && is_paged() ) {
		$object = get_queried_object();
		return get_term_link( $object->term_id );
	}
	return $canonical;
});

Как решить такую проблему?

0
Вадим
6 мая 2020
  • 0
    Glum672

    В wc есть функция для проверки что вы находитесь на странице каталога is_shop()

    vag 8 Май. 2020

    Не работает, по какой-то причине. Я в итоге так сделал

    add_filter( 'rank_math/frontend/canonical', function( $canonical ) {
    	if ( is_shop() && is_paged() ) {
    		global $wp;
    
    // get current url with query string.
    $current_url =  home_url( $wp->request ); 
    
    // get the position where '/page.. ' text start.
    $pos = strpos($current_url , '/page');
    
    // remove string from the specific postion
    $finalurl = substr($current_url,0,$pos);
    
    		return $finalurl .= '/';
    	}
    	return $canonical;
    });
    
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация