0

製品が属するトップカテゴリに応じてコンテンツを表示するために機能するこのコードスニペットがあります。

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

これは、Magento 1.6.1CommunityEditionのcatalog/productの下のlist.phtmlとview.phtmlに配置されます。このコードは1つのIDで機能しますが、追加しようとすると次のようになります。

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

もう動作しません。Magento Wizardsの何人かは、貧しい魂を助けることができますか?!前もって感謝します。

4

2 に答える 2

1

ゲラからの以前の投稿はほぼ正しいです。彼は論理を少し混乱させただけです-ORの代わりに論理ANDが必要です:

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 に答える