У меня возникли проблемы с выводом канонических тегов на мой сайт WordPress / WooCommerce.
В общем, у нас есть несколько вариантов одного и того же продукта, настроенного как простые продукты. Из-за этого у нас дублированный контент, поэтому мы хотим сообщить поисковым системам, что центральным источником информации является целевая страница, которую мы создали для каждого продукта с помощью канонического тега.
Это пример кода, который мы имеем в настоящее время. Весь код находится в нашем файле header.php:
<?php
// Achilles Desert Hawk UHP
if(is_product( array( '245-40-r20-99v-achilles-desert-hawk-uhp-e-c-72', '245-45-r20-99v-achilles-desert-hawk-uhp-e-c-72', '255-45-r20-105v-achilles-desert-hawk-uhp-f-c-72' )))
{
echo '<link rel="canonical" href="https://tyresdirectuk.co.uk/achilles-tyres/desert-hawk-uhp/" />';
}
// General Grabber GT
elseif(is_product( array( '195-80-r15-96h-general-grabber-gt-e-c-71', '205-70-r15-96h-general-grabber-gt-e-c-71', '205-80-r16-104t-general-grabber-gt-e-c-72', '215-60-r17-96h-general-grabber-gt-e-c-71', '215-65-r16-98h-general-grabber-gt-e-c-71', '215-65-r16-98v-general-grabber-gt-e-c-71', '215-70-r16-100h-general-grabber-gt-e-c-71', '225-55-r17-97v-general-grabber-gt-e-c-71', '225-55-r18-98v-general-grabber-gt-e-c-71', '225-60-r18-100h-general-grabber-gt-e-c-71', '225-65-r17-102v-general-grabber-gt-e-c-71', '225-70-r16-103h-general-grabber-gt-e-c-71', '235-50-r18-97v-general-grabber-gt-e-c-71' )))
{
echo '<link rel="canonical" href="https://tyresdirectuk.co.uk/general-tyres/grabber-gt/" />';
}
// Kumho Road Venture AT KL78
elseif(is_product( array( '30-950-r15-104s-kumho-road-venture-at-kl78-f-e-78', '195-80-r15-100s-kumho-road-venture-at-kl78-e-e-74', '205-75-r15-97s-kumho-road-venture-at-kl78-e-e-74', '205-80-r16-104s-kumho-road-venture-at-kl78-e-e-74')))
{
echo '<link rel="canonical" href="https://tyresdirectuk.co.uk/kumho-tyres/road-venture-at-kl78/" />';
}
?>
В общем, проблема в том, что соответствующие канонические ссылки не выводятся на правильные страницы.
Вот пример: https://tyresdirectuk.co.uk/shop/tyres/205-75-r15-97s-kumho-road-venture-at-kl78-e-e-74/
Это должно иметь следующую строку кода между <head></head>
теги:
<link rel="canonical" href="https://tyresdirectuk.co.uk/kumho-tyres/road-venture-at-kl78/" />
но вместо этого он говорит:
<link rel="canonical" href="https://tyresdirectuk.co.uk/achilles-tyres/desert-hawk-uhp/" />
Если кто-нибудь мог бы посоветовать это, я был бы очень признателен, так как я не могу понять это 🙂
Похоже, что ваша функция is_product () возвращает true, когда она должна возвращать false — возможно, всегда true. Таким образом, первая ветвь выполняется вместо других.
Других решений пока нет …