Magento – elenco sub-categorie di una specifica categoria superiore come link

Io sono un principiante di php e sono bloccato nel tentativo di chiamata sub-categorie di un solo genitore categoria come link

Ho questo ed è di portare la getName ma la funzione getUrl() non restituisce alcun URL a tutti….

<?php
      $children = Mage::getModel('catalog/category')->getCategories(3);
      foreach ($children as $category):
            echo '<li><a href="' . $category->getUrl() . '">' . $category->getName() . '</a></li>';
      endforeach;
?>

Il codice di uscita è solo <li><a href="">name of sub-cat</a></li>

Qualcuno ha qualche idea? Per favore?

Grazie,
Kayla

OriginaleL’autore Kayla | 2011-05-04

4 Replies
  1. 6

    Si prega di provare questo codice mi pare tu abbia fatto questo codice, ma questo è molto utile per chi è alla ricerca di questa codice

    <?php
        $children = Mage::getModel('catalog/category')->getCategories(3);
        foreach ($children as $category):
            $category = Mage::getModel('catalog/category')->load($category->getId());
            echo '<li><a href="' . $category->getUrl() . '">' . $category->getName() . '</a></li>';
        endforeach;
    ?>
    Ha lavorato molto bene sul 1.7.x, grazie!

    OriginaleL’autore Dhanapal

  2. 1

    Non so perché @Dhanapal soluzione non ha funzionato per me, così ho utilizzato:

    $categories = Mage::getModel('catalog/category')->load('3')->getChildrenCategories();
    foreach ($children as $category):
        $category = Mage::getModel('catalog/category')->load($category->getId());
        echo '<li><a href="' . $category->getUrl() . '">' . $category->getName() . '</a></li>';
    endforeach;

    OriginaleL’autore joseantgv

  3. 0

    Per qualche motivo, la risposta sopra non ha funzionato per me. Sto anche utilizzando Magento 1.7.x.

    Ho trovato Magento visualizza sottocategorie descrizione della categoria elenco.phtml link per essere utile.

    Sto cercando di fare lo stesso come voi, quindi ho regolato il precedente risposta da

    <?php $children = explode( ",", $this->getCurrentCategory()->getChildren() ); ?>
    <div class="category-products">
        <ul class="products-grid">
            <?php foreach( $children as $child ): ?>
                <?php $_child = Mage::getModel( 'catalog/category' )->load( $child ); ?>
                <li class="item"><?php echo $_child->getDescription(); ?></li>
            <?php endforeach; ?>
        </ul>
    </div>

    :

    <?php $children = explode( ",", $this->getCurrentCategory()->getChildren() ); ?>
    <div class="category-products">
        <ul class="products-list">
            <?php foreach( $children as $child ): ?>
                <?php $_child = Mage::getModel( 'catalog/category' )->load( $child ); ?>
                <li class="item"><a href="<?php echo $_child->getUrl() ?>"> <?php echo     $_child->getName() ?> </a></li>
            <?php endforeach; ?>
        </ul>
    </div>

    Come sopra, è possibile modificare il div con classe

    <div class="products-grid">

    invece di elencarli. Ma voi ci hanno chiesto come elenco.

    Spero che questo aiuta le persone in futuro. Ci sono tonnellate di altre questioni correlate su Stack overflow.

    OriginaleL’autore M1kstur

  4. 0

    Bene, Questo è stato un dolore nel culo. Ho fatto una funzione che elenca tutte le sottocategorie e sub-sub-categorie di categoria che si desidera visualizzare.

        <?PHP
    
    //get the children of the current category
    function getChildrenInterStore($id) {
        $returnstring = '';
        $subCats = Mage::getModel('catalog/category')->load($id)->getChildren();
        //get sub category ids
        $subCatIds = explode(',',$subCats);
        if (count($subCatIds) > 0): 
            foreach($subCatIds as $subCatId): 
                $subCat = Mage::getModel('catalog/category')->load($subCatId); 
                if($subCat->getIsActive()): 
                    $returnstring .= '
                    <li class="other-toggle sm_megamenu_lv1 sm_megamenu_drop parent">
                        <a class="sm_megamenu_head sm_megamenu_drop" href="'.$subCat->getUrl().'">
                            <span class="sm_megamenu_icon">
                            <span class="sm_megamenu_title">'.$subCat->getName().'</span>
                        </span>
                        </a>
                    </li>';
                    $returnstring .= getChildrenInterStore($subCatId);  
                endif; 
            endforeach;
        endif;
        return $returnstring; 
    }
    ?>
    
    <div class="mega-left-title">
        <strong>Categorieen</strong>
    </div>
    
    <div class="css_effect sm_megamenu_wrapper_vertical_menu sambar">
        <div class="sambar-inner">
            <ul class="sm-megamenu-hover sm_megamenu_menu sm_megamenu_menu_black">
                <?PHP echo getChildrenInterStore('17'); ?>
            </ul>
        </div>  
    </div>

    OriginaleL’autore Sjoerd de Wit

Lascia un commento