我在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 :(得分:0)
看起来你的is_product()函数在返回false时返回true - 可能总是为true。因此,第一个分支执行而不是其他分支。