У меня плагин мобильной версии понаделал дубли типа: ?fdx_switcher=true, ?fdx_switcher=mobile и ?fdx_switcher=desktop
Т.к. rel="canonical" у меня прописан, я не особо переживал, пока не увидел, что PageSpeed Insights ругается на переадресацию и выводит урл всех страницы мобильной темы с ?fdx_switcher=true.
Покапавший в интернете я нашел такой код в статье «Переадресация с дублей на каноническую страницу»
if ( is_singular() ) {
$check = get_bloginfo('url') . $_SERVER['REQUEST_URI']; // узнаем текущий url
if ( $check != get_permalink() ){
header( 'HTTP/1.1 301 Moved Permanently' );
header( 'Location: ' . get_permalink() );
} // операция сравнения, если обнаруживаем отличие, делаем перенаправление
}
Этот код замечательно сработал, в мобильной теме посты и страницы показываются с каноническим урл и PageSpeed Insights так же перестал ругаться.
Но данный код не работает, для категорий. Урлы категорий остались, как раньше с ?fdx_switcher=true.
Присмотревшись к коду, я начал думать, что
get_permalink()
это получение постоянной ссылки на запись, а для категорий надо использовать
get_category_link()
. Пытался по разному вставить
get_category_link()
в данный код, но не получается, моих знаний не хватает.
Помогите, как правильно изменить код, чтобы переадресация работала и для категориях.