PHP如果是is_product echo规范链接

时间:2016-02-03 16:21:48

标签: php wordpress if-statement woocommerce canonical-link

我在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/" />

如果有人可以就此提出建议,我将不胜感激,因为我无法弄明白:)

1 个答案:

答案 0 :(得分:0)

看起来你的is_product()函数在返回false时返回true - 可能总是为true。因此,第一个分支执行而不是其他分支。