Shopping cart

How to get Current Product & Current Category in Magento 2

If you are wondering how to get/print the information of the current product and even the current category, the topic is all things you need to find. Two steps are recommended in this topic, please get them and do any thing you need.


Step 1: Declare in Mageplaza_HelloWorld

You will use a block class of the module Mageplaza_HelloWorld, then possibly inject the object of \Magento\Framework\Registry in the constructor of the module’s block class.


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');

Step 2: Get current product in the template phtml file

The current product includes the following information: name, sku, final price, url and associated category ids. And the current category comes with the information as name and url. Now please run the command to print out the current product and the current category.

$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 />';    

Step 3: Get current category in the template phtml file

$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 />';        

This is the guide to get current product and current category in Magento 2. If that you have any queries about the article or any questions in general, use the comment section below!

Recommend Topics

Enjoyed the tutorial? Spread it to your friends!


Sam Thomas
Sam Thomas
CEO and Founder of Mageplaza. Pursueing a simple and healthy lifestyle. A friend, a husband and a dad of two children, a trainer and a wanna-be influencer. He is a big fan of sports and travel, also.

Comments for How to get Current Product & Current Category in Magento 2

Please leave comments if you have any questions, feedbacks.

Module Development

We recommend:

People also searched for

  • magento 2 get current product
  • magento 2 how to get current product
  • category
  • get current product magento 2
  • get current category in magento 2
  • get current category in magento 2
  • 2.1.x, 2.2.x, 2.3.x