2017-07-31 70 views
1

因此,我使用此代碼來顯示我的網站上的任何產品所包含的類別。問題是,我使用某些類別作爲佔位符來顯示「我想要的特色產品」嘗試過濾掉這些。在magento中過濾非活動類別

這是Magento的1.9.1.0對PHP 30年6月5日

<ul class="listfix"> 
<?php $categories = $_product->getCategoryIds(); ?> 
<?php foreach($categories as $k => $_category_id): 
?> 
<?php $_category= Mage::getModel('catalog/category')->load($_category_id)?> 
    <?php if($_category->getId()):?> 
    <li><a href="<?php echo $_category->getUrl() ?>"><?php echo $_category- 
>getName() ?></a> 
    </li> 
     <?php endif;?> 
    <?php endforeach; ?> 
</ul> 

我嘗試添加該

$_category->addAttributeToFilter('is_active', 1)//get only active 
    categories 

但它扔了一個錯誤,我不是一個偉大的PHP的傢伙,我只是找到一些代碼並嘗試使它們工作。我從HERE

拿到原裝配件按下面我試着在下面的代碼添加,但我仍然看到的類別列出的積極性不高......

<ul class="listfix"> 
<?php $activeCategories = 
Mage::getResourceModel('catalog/category_collection') 
->addAttributeToFilter('is_active', 1) 
->getColumnValues('entity_id'); 
?> 

<?php $activeCategories = $_product->getCategoryIds(); ?> 
<?php foreach($activeCategories as $k => $_category_id): ?> 
<?php $_category= Mage::getModel('catalog/category')->load($_category_id)?> 
    <?php if($_category->getId()):?> 
<li><a href="<?php echo $_category->getUrl() ?>"><?php echo $_category- 
>getName() ?></a> 
</li> 
    <?php endif;?> 

+0

首先,你需要知道你正在運行的Magento的版本是什麼.. – Zak

+0

它的1.9.1.0在PHP 5.6.30 –

回答

0

這會給你的列表中的所有活動的範疇上的ID在1.9:

$activeCategories = Mage::getResourceModel('catalog/category_collection') 
->addAttributeToFilter('is_active', 1) 
->getColumnValues('entity_id'); 

然後你遍歷數組,並加載catego RY,或什麼的,由ID:

foreach($activeCategories as $id) { 
    $cat = Mage::getModel('catalog/category')->load($id); 
} 
+0

嘗試編輯我的代碼使用這個循環,它不知何故做了一個沒有關聯的類別該產品在產品頁面上顯示。 –

+0

在你的代碼中,你需要比較'$ categories'到'$ activeCategories' - 如果$'activeCategories'中存在'$ categories'的類別id,然後顯示它 - 否則,跳過 – Zak

+0

我發佈了你的代碼,我添加到原始問題中,我仍然看到不活躍的類別。 –

0
<ul class="listmem"> 
<?php $activeCategories = 
Mage::getResourceModel('catalog/category_collection') 
->addAttributeToFilter('is_active', 1) 
->getColumnValues('entity_id');?> 

<ul class="listfix"> 
<?php $activeCategories = $_product->getCategoryIds(); ?> 
<?php foreach($activeCategories as $id) { 
    $cat = Mage::getModel('catalog/category')->load($id); 
} ?> 

<?php if($cat->getId()):?> 
    <li><a href="<?php echo $cat->getUrl() ?>"><?php echo $cat->getName() ?> 
</a> 
    </li> 
<?php endif;?> 
</ul> 

我以爲我整理出我在做什麼錯的,但我仍然能看到那些不活躍我的列表中的類別。

+0

只是注意到這個代碼拋出錯誤,如果產品沒有屬於任何類別,所以我不得不回到我的原始 –