首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento hreflang实现

Magento hreflang实现
EN

Stack Overflow用户
提问于 2018-08-28 03:55:19
回答 2查看 375关注 0票数 0

使用前面讨论中的代码(链接:https://magento.stackexchange.com/questions/12504/how-to-add-hreflang-tags-or-other-meta-tags-to-pages-in-magento),我能够将hreflang链接实现到我们的Magento站点。

以下是为我工作的代码:

代码语言:javascript
复制
    <?php foreach (Mage::app()->getWebsites() as $website) {
    foreach ($website->getGroups() as $group) {
        $stores = $group->getStores();
        foreach ($stores as $store) {
            $storeId = $store->getId();
            $storeCode = substr(Mage::getStoreConfig('general/locale/code', $storeId),0,2);
            if (Mage::registry('product')) {
                $productId  = Mage::registry('product')->getId();
                $base_url = Mage::app()->getStore($storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
                $url = Mage::getModel('catalog/product')->setStoreId($storeId)->load($productId)->getProductUrl();
                $url = preg_replace('/\?.*/', '', $url); 
                echo '<link rel="alternate" hreflang="' . $storeCode . '" href="' . $url . '"/>';}
            elseif(Mage::registry('current_category')) { 
                $categoryId = Mage::registry('current_category')->getId();
                $base_url = Mage::app()->getStore($storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
                $url = Mage::getModel('catalog/category')->setStoreId($storeId)->load($categoryId)->getUrlPath();
                echo '<link rel="alternate" hreflang="' . $storeCode . '" href="' . $base_url . $url . '"/>' . "\n";
                }}}} 
?>
<?php 
            $storeId = 1;
            if (Mage::registry('product')) {
                $productId  = Mage::registry('product')->getId();
                $base_url = Mage::app()->getStore($storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
                $url = Mage::getModel('catalog/product')->setStoreId($storeId)->load($productId)->getProductUrl();
                $url = preg_replace('/\?.*/', '', $url); 
                echo '<link rel="alternate" hreflang="x-default" href="' . $url . '"/>';
}
            elseif(Mage::registry('current_category')) { 
                $categoryId = Mage::registry('current_category')->getId();
                $base_url = Mage::app()->getStore($storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
                $url = Mage::getModel('catalog/category')->setStoreId($storeId)->load($categoryId)->getUrlPath();
                echo '<link rel="alternate" hreflang="x-default" href="' . $base_url . $url . '"/>' . "\n";
            }
?> 

我有一个分层导航网址的问题和规范的链接消失在类别页面上。

有没有什么可以添加到这段代码中,以确保分层导航URL包含"?“在.html按照浏览器地址栏中所示编写之后?

此外,在这些类型的类别页面上,不会显示规范链接。

代码在产品页面上运行得很好。

任何帮助都将不胜感激!

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-08-29 17:21:44

要解决这个问题,我需要知道:

  • 你把这段代码放在哪里了?是否按类别执行? the
  • Is

current_category empty?

致以问候。

票数 0
EN

Stack Overflow用户

发布于 2018-08-30 16:48:38

我误解了这个问题。你能举个例子吗?代码仅显示类别基本URL。当应用过滤器时,模块会更改URL,添加过滤后的参数,但您的代码中没有这些参数。

通常,人们不会定位过滤器,因为它会带来许多重复内容的问题。看看这个链接:https://amasty.com/blog/magento-layered-navigation-best-settings-for-seo/

在我看来,我会将规范的URL放在使用其基本URL的类别中,并且不允许索引任何分层的内容,因为这可能会产生重复的内容问题。

亲切的问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52046167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档