2016-10-31 13 views
5

マルチストアーに手動で名前付きのカテゴリリンクをいくつか追加したいと思います。 私はこの作品MagentoカテゴリのURLと名前を取得

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

本(例として分類ID20)を試してみたが、私はそれは良いアイデアだかどうかわからないんだけど、単にURLを取得するための負荷がたくさんあります。

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

ロケールのcsvで翻訳して:

私はまた、代わりに翻訳を使用してみました。

これも機能しますが、これを達成するための「正しい方法」は何ですか?これは回避策のように感じます。

+0

いいえ、正しい方法ではありません。ローカリゼーションは言語翻訳のためのものです。私はあなたのステートメントに同意しますが、名前とURLを取得するだけのカテゴリ全体の読み込みは非効率的であることに同意しますが、それを使用するブロックはおそらくキャッシュされるため、毎回その作業をしないでしょうページを読み込む時間。 –

+0

ああ、ありがとう、多分私のキャッシュといくつかの問題、私は別の場所に16のカテゴリを持っていると私は顕著なローディングの違いを持っ​​ている翻訳 "ハック"で試してみると、さらに調査する必要があります。 –

+0

別のオプションは、直接的に排他的に必要なデータを検索するリソース・モデルを作成することです –

答えて

0

あなたはこの試みることができます:

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

のためのurlキー属性にも($categoryId, 'url_key', $storeId)(この場合は)任意のカテゴリ属性を取得するが、それはキーが完全なカテゴリのURLではありません単なるURLです。

関連する問題