Magento属性的一般调用很简单, 直接修改\app\design\frontend\base\default\template\catalog\product\文件夹里的 view.phtml 和 list.phtml 就可以了, 就是在需要的地方敲上这一段代码
<?php echo $_product->getAttributeName(); ?>
其中 AttributeName 为属性名. 例如 name 为产品的名称属性名, 可以这样写
<?php echo $_product->getName(); ?>
或者
<?php echo nl2br($_product->getName()) ?>
或者
<?php echo $_product->getResource()->getAttribute(‘name’)->getFrontend()->getValue($_product); ?>
方法有很多, 一般使用前面两种, 在 view.phtm 也就是产品页面调用任意属性是完全没问题的.
但是在 列表页(list.phtml) 就不一样了, 列表页默认只能调用基本属性, 如 name price sku ……
像一些扩展属性 cost weight color …… 和自定义属性就无法调用! 虽然如此, 但是解决办法还是有很多.
方法一: 在 list.phtml 重写 $_product 变量, 我花了大半时间在这个问题上, 还是解决不了问题, 如果有高手能指点一些, 在下感激不尽~
方法二: 抛开修改 list.phtml 的念头, 直接从 Magento 的核心入手, 修改 XML !
修改 \app\design\frontend\base\default\layout\ 文件夹下的 catalog.xml 文件, 找到
<block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
在这一行的下面添加这么一句
<action method="addAttribute"><attribute>AttributeName</attribute></action>
AttributeName 是属性名称, 这样就可以用 <?php echo $_product->getName(); ?> 调用属性值
你新增的属性为文本或文本域类型(Text Field or Text Area),那么你的代码应为:
<?php echo $_product->getAttributeName() ?>
你新增了一个属性代码(Attribute Code)为 shoe_size的属性,那么你的调用代码应写成下面格式:
<?php echo $_product->getAttributeName() ?>
你新增的属性为下拉菜单类型(Dropdown)和多项选择类型(Multiple Select),那么你的代码应写成下面格式:
<?php echo $_product->getAttributeText(‘AttributeName’) ?>
另外有一个方法, 用来接收 .xml 文件传来的属性名称, 在这里贴一下, 这是一位热心人士提供的
public function addAttribute($AttributeName){
$this->_getProductCollection()->addAttributeToSelect($AttributeName);
return $this;
}
转自:http://blog.sina.com.cn/s/blog_6869e3ba0100mcjh.html