2016-10-31 3 views
5

Я хотел бы добавить несколько ссылок на категории с именами вручную в моем многострочном хранилище. Я попробовал это (категория ID20 как пример)Получить URL-адрес и URL-адрес Magento

<?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> 

С переводом в Locale CSV.

Это также работает, но что такое «правильный путь» для достижения этого? Это похоже на обходной путь.

+0

Нет, это не правильный способ сделать это. Локализации предназначены для языковых переводов. Вы должны иметь в виду, что, хотя я согласен с вашим заявлением о том, что загрузка всей категории только для получения ее имени и URL-адреса неэффективна, блок, в котором вы его используете, предположительно будет кэшироваться, поэтому вы не будете выполнять каждую работу время загрузки страницы. –

+0

Ах спасибо, может быть, какая-то проблема с моим кешем, тогда у меня было 16 категорий в разных местах, и когда я попробовал с переводом «взломать», я получил заметную разницу в загрузке, придется исследовать дальше. –

+0

Другой вариант - написать модель ресурсов, которая извлекает нужные данные напрямую и исключительно –

ответ

0

Вы можете попробовать это:

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

для получения какой-либо атрибут категории (в данном случае) также ($categoryId, 'url_key', $storeId) для атрибута ключа URL-адрес, но это просто гиперссылка ключ не полная категория URL.

Смежные вопросы