我目前正在使用此循环来显示特定类别中的某些元素
<?php if(Mage::registry('current_category')->getId() == 3):?>
添加更多类别的正确方法是什么?因为我试过这个
<?php if(Mage::registry('current_category')->getId() == 3,4,5,6,7):?>
这个
<?php if(Mage::registry('current_category')->getId() == 3 || 4 || 5:?>
但是我遇到了致命的错误。
我能想到的唯一方法是使用elseif:
<?php if(Mage::registry('current_category')->getId() == 3):?>
<?php elseif(Mage::registry('current_category')->getId() == 4) { ?>
blah blah blah
<? } then another elseif if I want to show it in more categories ?>
但是有更短的版本吗?就像在一行中包含所有类别ID一样。我只想展示&#34;等等等等等等等。如果类别是3或4或5或6,但只有一行,不使用elseif。
答案 0 :(得分:2)
使用in_array()将整理您的代码。但是,我不会将类别ID硬编码到模板中。这将使维护变得非常困难。 (考虑您要添加更多类别的情况)。 为此,我将在模板中添加:
echo $this->getChildHtml('block.name');
在内容块中 然后Admin =&gt;目录=&gt;管理类别,选择自定义设计选项卡,然后在自定义布局更新下添加:
<reference name='content'>
<block type='core/template' name='block.name' template='[yourthemepath]/your-block.phtml'> </block>
</reference>
将来,如果您改变主意,可以直接转到Magento管理员,无需更改代码。
答案 1 :(得分:0)
尝试in_array():
<?php
$acceptable_categories = array(3, 4, 5, 6, 7);
$current_category_id = Mage::registry('current_category')->getId();
if(in_array($current_category_id, $acceptable_categories)) {
// do stuff
}
以下是此功能的官方文档:PHP function in_array()