I have followed the below links to try and get PHP code into CMS Block which links to a .phtml file, with no avail.
Show content of phtml file on static block Magento 2
Currently on our M1 website we have the below setup:
Page Content:
{{block type="catalog/product" template="catalog/pages/towbars.phtml"}}
Referencing the links above, I have tried modifying this, however I am unsure exactly what my "block class" should be and the "template".
{{block class="Path\To\Block\Class" template="Namespace_Module::filename.phtml"}}
Can someone please give me a working example of the above code for Magento 2 and the location of the file, etc.
Many Thanks, Barry
- 
 Hi Barry, are you new to Magento 2? Please, learn how to create a simple Magento module, learn about the Magento 2 module structure, layout, template.Khoa Truong– Khoa Truong2019年10月15日 15:11:22 +00:00Commented Oct 15, 2019 at 15:11
- 
 Hi, Yes I am new to Magento 2 and I guess it shows. As I have this setup in Magento 1 I thought it cannot be too far away in Magento 2. I will look into this, but any initial suggestions will be helpful.Barry Hughes– Barry Hughes2019年10月15日 15:37:12 +00:00Commented Oct 15, 2019 at 15:37
- 
 Hi Barry, You can check this module here github.com/KishanSavaliya/… You can get idea how layout, block and templates are working with Magento 2. Hope this will help you. :)Kishan Savaliya– Kishan Savaliya2019年10月15日 17:19:42 +00:00Commented Oct 15, 2019 at 17:19
- 
 1Hi Kishan, I worked through your module link you sent over and I have this working so that's great. This definitely provides me with an understanding. Thank you for your help.Barry Hughes– Barry Hughes2019年10月16日 09:27:19 +00:00Commented Oct 16, 2019 at 9:27
- 
 Thanks Barry, You can accept my answer here and up vote if you like my article :)Kishan Savaliya– Kishan Savaliya2019年10月16日 18:22:25 +00:00Commented Oct 16, 2019 at 18:22
2 Answers 2
You can use Magento\Framework\View\Element\Template class to call phtml files
{{block class="Magento\Framework\View\Element\Template" template="Vendor_Module::myfiles/myfile.phtml"}}
To call advanced form use Magento\CatalogSearch\Block\Advanced\Form block class.
{{block class="Magento\CatalogSearch\Block\Advanced\Form" name="block_name" template="Magento_CatalogSearch::advanced/form.phtml"}}
I hope it will help for you.
You can use Magento\Framework\View\Element\Template class to call phtml files if you do not have any Block class otherwise you can use your Block instead of using this default Template element which is highlighted.
You can use this in your phtml files to call another phtml file
<?php echo $block->getLayout()->createBlock('Magento\Framework\View\Element\Template')->setTemplate('Vendor_Module::template.phtml')->toHtml();?>
You can use this below content in your admin CMS Pages and Blocks to render your phtml template
{{block class="Magento\Framework\View\Element\Template" template="Vendor_Module::template.phtml"}}
And you can use below content in your XML file
<block class="Magento\Framework\View\Element\Template" name="your_block_name" before="-" template="Vendor_Module::sampledirectory/template.phtml">
Hope this will help you! :)
- 
 Approve my answer and an upvote if this was helpful to you. :)Kishan Savaliya– Kishan Savaliya2019年10月18日 02:20:30 +00:00Commented Oct 18, 2019 at 2:20