使用先前讨论中的代码(链接:https://magento.stackexchange.com/questions/12504/how-to-add-hreflang-tags-or-other-meta-tags-to-pages-in-magento),我能够将hreflang链接实现到我们的Magento网站。
以下是对我有用的代码:
<?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的问题,并且类别页面上的规范链接消失了。
是否可以在此代码中添加一些内容,以确保包含“?”的分层导航URL?在.html写入后,如浏览器地址栏中所示?
此外,在这些类型的类别页面上,规范链接也不会显示。
该代码在产品页面上完美运行。
任何帮助将不胜感激!
谢谢。
答案 0 :(得分:0)
要解决这个问题,我需要知道:
致谢。
答案 1 :(得分:0)
我误解了这个问题。你能举个例子吗? 该代码仅显示类别的基本URL。在应用过滤器时,请更改模块的URL,以添加过滤的参数,但您的代码中没有这些参数。
通常人们不会放置过滤器,因为它会带来很多重复内容的问题。看一下这个链接: https://amasty.com/blog/magento-layered-navigation-best-settings-for-seo/
我认为,我会使用其基本URL将规范的URL保留在类别中,并且不允许索引分层的任何内容,因为这样可能会导致重复的内容问题。
亲切的问候