0

我有这个代码片段,它可以根据产品所属的顶级类别显示内容:

<?php $categoryIds = $_product->getCategoryIds(); if($categoryIds[0]!= '42'):?>
   CONTENT HERE...
<?php endif; ?>

这是放在 Magento 1.6.1 社区版的目录/产品下的 list.phtml 和 view.phtml 中。此代码适用于一个 ID,但是当我尝试添加时:

<?php $categoryIds = $_product->getCategoryIds(); if($categoryIds[0]!= '42' || $categoryIds[1]!= '43'):?>
   CONTENT HERE...
<?php endif; ?>

它不再起作用了。你们中的一些 Magento 巫师可以帮助一个可怜的灵魂吗?!提前致谢。

4

2 回答 2

1

Guerra以前的帖子几乎是正确的。他只是在逻辑上搞砸了一点——你需要逻辑 AND 而不是 OR:

if(!in_array('42',$categoryIds) && !in_array('43',$categoryIds))

否则,对于 42 和 43 类别,案例将返回 true(因为 OR)。

于 2012-09-10T15:50:13.107 回答
0

您可以尝试通过以下方式更改您的 if 语句

if(!in_array('42',$categoryIds) || !in_array('43',$categoryIds))

它比固定位置更好。因为如果你的函数返回 43 和 42 以便你不能在位置 0 和 1 上正确。

于 2012-09-10T14:50:43.277 回答