gpt4 book ai didi

php - Magento Multistore 规范标签

转载 作者:搜寻专家 更新时间:2023-10-31 21:08:17 25 4
gpt4 key购买 nike

我有一个简短的问题要问你。 Magento 已经有一个用于产品和类别的规范工具。

但这如何适用于多商店?

例子:

我有 3 个域。

http://domainname1.at
http://domainname2.de
http://domainname3.ch

它们都具有相同的内容(德语)。

当我激活 domainname3.ch 的规范标签时标签看起来像:

<link rel="canonical" href="http://dimainname3.ch" />

但我希望 domainname2 和 domainname3 canonicaltag 指向唯一内容所在的 domainname1!

谢谢!

最佳答案

Magento already have a canonical tool for products and categories ... how does this work with multi stores?

它目前没有这种开箱即用的功能,因此您需要使用扩展来设置它。有很多方法可以解决这个问题,但我会这样做的方法是在添加时修改 rel="canonical" 链接。

在我的新扩展或修改后的扩展中,我将扩展 Mage_Page_Block_Html_Head 并覆盖方法 addLinkRel() 以执行如下操作:

class My_Page_Block_Html_Head extends Mage_Page_Block_Html_Head
{
/**
* Add Link element to HEAD entity
* Overridden to support new canonical cross domain feature.
*
* @param string $rel forward link types
* @param string $href URI for linked resource
* @return Mage_Page_Block_Html_Head
*/
public function addLinkRel($rel, $href)
{
if ($rel == 'canonical' && $ccd = Mage::getStoreConfig('design/head/canonical_cross_domain')) {
$href = preg_replace('/(https?:\/\/)[^\/]+(\/.*)/', "$1$ccd$2", $href);
}
return parent::addLinkRel($rel, $href);
}
}

为了使其按预期工作,我需要将值插入到 core_config_data 数据库表中。这可以手动完成,甚至更好,在我的扩展程序中,我可以在管理配置部分 General/Design/HTML Head 中设置一个新字段。我不会在这里介绍它,因为它只是一个很好的接触。要添加的值将是这样的:

INSERT INTO core_config_data
(scope, scope_id, path, value)
VALUES
('stores', STORE_ID_FOR_DOMAIN2, 'design/head/canonical_cross_domain', 'domainname1.at'),
('stores', STORE_ID_FOR_DOMAIN3, 'design/head/canonical_cross_domain', 'domainname1.at');

现在,只要 Magento 在正常情况下添加标准 rel="canonical" 链接,它会首先检查是否为当前商店 View 配置了跨域并替换为该域名而不是当前的。

关于php - Magento Multistore 规范标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28361788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com