Magento类别到猫头鹰轮播

时间:2019-05-21 07:11:59

标签: php magento magento2

此代码仅显示每个类别中的一个产品,但是我希望它在其自己的猫头鹰轮播中显示每个类别中的所有产品。

我该如何解决?

<?php
$categoryIds = array("3","5","6","12","7");
foreach($categoryIds as $categoryId){

    $carouselcategoryProducts = $block->getCategoryProductsById($categoryId);

foreach ($carouselcategoryProducts as $carouselproduct) {
    /*Get Thumbnail*/
    $carouselimageBlock = $block->getLayout()->createBlock('Magento\Catalog\Block\Product\ListProduct');
    $carouselproductImage = $carouselimageBlock->getImage($carouselproduct, 'category_page_grid');
    ?>

    <div class="owl-carousel owl-theme">
        <h4 class="item">
            <a href="<?php echo $carouselproduct->getProductUrl(); ?>">
                <div class="product_row2">
                    <div class="product_column2">
                        <img class="product_img2" <?php echo $carouselproductImage->toHtml(); ?><i class="far fa-clone compare"></i>
                        <p class="product_title2"><?php echo $carouselproduct->getName(); ?></p>
                        <p class="product_price2">€ <?php echo $carouselproduct->getFinalPrice(); ?>,-</p>
                    </div>
                </div>
            </a>
        </h4>
    </div>
<?php
    }
}
?>

2 个答案:

答案 0 :(得分:1)

解决了该问题。

正确的代码:

<?php
$categoryIds = array(3,5,6,12,7);

foreach($categoryIds as $categoryId) :
    //echo "<p>category id: </p>$categoryId";
    $carouselcategoryProducts = $block->getCategoryProductsById($categoryId);
    echo "<div class=\"owl-carousel owl-theme\">";

foreach ($carouselcategoryProducts as $carouselproduct) :
    //Get Thumbnail
    $carouselimageBlock = $block->getLayout()->createBlock('Magento\Catalog\Block\Product\ListProduct');
    $carouselproductImage = $carouselimageBlock->getImage($carouselproduct, 'category_page_grid');
    ?>
        <h4 class="item">
            <a href="<?php echo $carouselproduct->getProductUrl(); ?>">
                <div class="product_row2">
                    <div class="product_column2">
                        <img class="product_img2" <?php echo $carouselproductImage->toHtml(); ?><i class="far fa-clone compare"></i>
                        <p class="product_title2"><?php echo $carouselproduct->getName(); ?></p>
                        <p class="product_price2">€ <?php echo $carouselproduct->getFinalPrice(); ?>,-</p>
                    </div>
                </div>
            </a>
        </h4>

<?php endforeach; ?>
</div>
<?php endforeach; ?>

答案 1 :(得分:0)

正确的代码:

$ categoryIds = array(3,5,6,12,7);

foreach ($categoryIds as $cat) 
{ 

        $_category = $objectManager->create('Magento\Catalog\Model\Category')->load($cat);
        echo "<div class=\"owl-carousel owl-theme\">";
        $categoryProducts = $_category->getProductCollection()
                         ->addAttributeToSelect('*');

        foreach ($categoryProducts as $product) {?>

         <h4 class="item">
        <a href="<?php echo $product->getProductUrl(); ?>">
            <div class="product_row2">
                <div class="product_column2">
                    <img class="product_img2" <?php echo $product->toHtml(); ?><i class="far fa-clone compare"></i>
                    <p class="product_title2"><?php echo $product->getName(); ?></p>
                    <p class="product_price2">€ <?php echo $product->getFinalPrice(); ?>,-</p>
                </div>
            </div>
        </a>
    </h4>

    }
    echo "</div>";

}