In this blog, we will learn about how to get block html and used in any page on front. We can do it many ways as per our need.
Let’s start to learn each way in details.
Call phtml file in other phtml file directly
When you have custom phtml in your custom theme and you want to use in other pthml file then you can do it by Magento default block class.
<?php
echo $this->getLayout()
->createBlock("Magento\Framework\View\Element\Template")
->setTemplate("Magento_Catalog::catalog/product/custom.phtml")
->toHtml() ;
?>
Suppose, you have created custom module and you want to call module phtml in other phtml file than you can get it by:
<?php
echo $this->getLayout()
->createBlock('Mageclues\HelloWorld\Block\HelloWorld')
->setTemplate('Mageclues_HelloWorld::helloworld.phtml')
->toHtml();
?>
Call phtml file in CMS BLOCK and CMS PAGE
We provide two example for get phtml content in cms page and block, you can use it as per your need.
Example 1:
{{block class="Magento\Framework\View\Element\Template" template="Magento_Catalog::catalog/product/custom.phtml"}}
Example 2:
{{block class="Mageclues\HelloWorld\Block\HelloWorld" template="Mageclues_HelloWorld::helloworld.phtml"}}
Call phtml file in Helper class
With the help of helper class function, we can get phtml file content and then call helper function where you want to use it.
How to create custom helper in Magento 2
<?php
namespace MageClues\HelloWorld\Helper;
class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
protected $_layoutFactory;
public function __construct(\Magento\Framework\View\LayoutFactory $layoutFactory)
{
$this->_layoutFactory = $layoutFactory;
}
public function getHelloContent()
{
$layout = $this->_layoutFactory->create();
$blockHtml = $layout->createBlock("MageClues\HelloWorld\Block\Hello")
->setTemplate("Mageclues_HelloWorld::helloworld.phtml")
->setData('area','frontend') // optional
->setResponse($productId) // optional
->toHtml();
return $blockHtml;
}
}
After that you need to call helper function from phtml and wherever you want to use it. How to Call Helper Function in phtml in Magento 2
This also useful when you are working with AJAX and need to get block html response.
We hope this blog is helpful for you. if you have any question then please left comment.
Thank you):
Thanks very interesting blog!
Attractive element of content. I simply stumbled
upon your blog and in accession capital to assert that I get in fact loved account your
blog posts. Any way I will be subscribing on your feeds or even I
fulfillment you get entry to persistently rapidly.
Great article.
Its like you read my mind! You appear to know a lot
about this, like you wrote the book in it or something.
I think that you can do with some pics to drive the message home a bit, but other than that,
this is excellent blog. A great read. I’ll definitely be back.