Php 获取Magento类别URL&;名称

Php 获取Magento类别URL&;名称,php,magento,Php,Magento,我想在我的multistore中手动添加几个带有名称的类别链接。 我已经试过了(以类别ID20为例) 这是可行的,但我不确定这是否是个好主意,仅仅为了获取URL就需要大量加载 我也试着用翻译来代替: <a href="<?php echo $this->__('URL-Language1') ?>"><?php echo $this->__('CatName-Language1') ?></a> 在区域设置csv中进行翻译 这

我想在我的multistore中手动添加几个带有名称的类别链接。 我已经试过了(以类别ID20为例)


这是可行的,但我不确定这是否是个好主意,仅仅为了获取URL就需要大量加载

我也试着用翻译来代替:

<a href="<?php echo $this->__('URL-Language1') ?>"><?php echo $this->__('CatName-Language1') ?></a>

在区域设置csv中进行翻译

这也行得通,但实现这一目标的“正确方法”是什么?这感觉像是一个解决办法。

您可以尝试以下方法:

Mage::getResourceModel('catalog/category')->getAttributeRawValue($categoryId, 'name', $storeId);

对于检索任何类别属性(在本例中)也
($categoryId,'url\u key',$storeId)
对于url键属性,但只是url键不是完整类别url。

不,这不是正确的方法。本地化是用于语言翻译的。您应该记住,虽然我同意您的说法,即加载整个类别只是为了检索其名称和URL是低效的,但您使用它的块可能会被缓存,因此您不会每次加载页面时都进行此工作。啊,谢谢,也许我的缓存有问题,我在不同的地方得到了16个类别,当尝试翻译“hack”时,我得到了明显的负载差异,需要进一步研究。另一个选择是编写一个资源模型,直接以独占方式检索所需的数据
Mage::getResourceModel('catalog/category')->getAttributeRawValue($categoryId, 'name', $storeId);