【问题标题】:Get Magento Category URL & Name获取 Magento 类别 URL 和名称
【发布时间】:2016-10-31 18:04:08
【问题描述】:

我想在我的多存储中手动添加一些带有名称的类别链接。 我试过这个(以类别 ID20 为例)

<?php $category = Mage::getModel('catalog/category')->load(20); ?>
<a href="<?php echo $category->getUrl(); ?>"><?php echo $category->getName();?></a>

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

我也尝试过使用翻译:

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

在区域设置 csv 中进行翻译。

这也有效,但实现这一目标的“正确方法”是什么?这感觉像是一种解决方法。

【问题讨论】:

  • 不,这不是正确的做法。本地化用于语言翻译。您应该记住,虽然我同意您的说法,即加载整个类别只是为了检索其名称和 URL 效率低下,但您使用它的块可能会被缓存,因此您不会每次都做这项工作加载页面的时间。
  • 啊,谢谢,也许我的缓存有问题,我在不同的地方得到了 16 个类别,当尝试使用翻译“hack”时,我得到了明显的加载差异,需要进一步调查。
  • 另一种选择是编写一个资源模型,直接专门检索你想要的数据

标签: php magento


【解决方案1】:

你可以试试这个:

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

用于检索任何类别属性(在这种情况下)还 ($categoryId, 'url_key', $storeId) 用于 url 键属性,但它只是 url 键不是完整的类别 url。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多