获取当前产品和分类

如果你想了解如何获取/打印产品和分类的信息,这篇教程就是你需要的,请按照文中推荐的两个步骤执行来做你想做的事。

概览:

  • 第一步:在 Mageplaza_HelloWorld 中声明
  • 第二步:在 phtml 模板文件中打印出当前产品
  • 第三步:在 phtml 模板文件中打印出当前分类

第一步:在 Mageplaza_HelloWorld 中声明

使用模块 Mageplaza_HelloWorld 中的块(block)类,然后向模块的块(block)类的构造函数中注入 \Magento\Framework\Registry 对象。

app/code/Mageplaza/HelloWorld/Block/HelloWorld.php

<?php
namespace Mageplaza\HelloWorld\Block;
class HelloWorld extends \Magento\Framework\View\Element\Template
{
        protected $_registry;
        
    public function __construct(
        \Magento\Backend\Block\Template\Context $context,        
        \Magento\Framework\Registry $registry,
        array $data = []
    )
    {        
        $this->_registry = $registry;
        parent::__construct($context, $data);
    }
    
    public function _prepareLayout()
    {
        return parent::_prepareLayout();
    }
    
    public function getCurrentCategory()
    {        
        return $this->_registry->registry('current_category');
    }
    
    public function getCurrentProduct()
    {        
        return $this->_registry->registry('current_product');
    }    
    
}
?>

第二步:在 phtml 模板文件中打印出当前产品信息

当前产品包括以下信息:名称,SKU,最终价格,URL 和关联的类别ID。当前分类包含名称和 URL 等信息。现在请运行命令打印出当前产品和当前分类。

$myBlock = \Magento\Framework\App\ObjectManager::getInstance()->get('Mageplaza\HelloWorld\Block\HelloWorld');
 

// print current product data
if ($currentProduct = $myBlock->getCurrentProduct()) {
    echo $currentProduct->getName() . '<br />';
    echo $currentProduct->getSku() . '<br />';
    echo $currentProduct->getFinalPrice() . '<br />';
    echo $currentProduct->getProductUrl() . '<br />';
    print_r ($currentProduct->getCategoryIds()) . '<br />';    
}

第三步:在 phtml 模板文件中打印出当前分类

$myBlock = \Magento\Framework\App\ObjectManager::getInstance()->get('Mageplaza\HelloWorld\Block\HelloWorld');
 
// print current category data
if ($currentCategory = $myBlock->getCurrentCategory()) {    
    echo $currentCategory->getName() . '<br />';
    echo $currentCategory->getUrl() . '<br />';        
}

本教程翻译自Mageplaza模块开发系列,其他内容请点击下面链接: