wordpress — PHP, если is_product echo каноническая ссылка

У меня возникли проблемы с выводом канонических тегов на мой сайт 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/" />

Если кто-нибудь мог бы посоветовать это, я был бы очень признателен, так как я не могу понять это 🙂

0

Решение

Похоже, что ваша функция is_product () возвращает true, когда она должна возвращать false — возможно, всегда true. Таким образом, первая ветвь выполняется вместо других.

0

Другие решения

Других решений пока нет …