我正在创建一个magento 2主题。我只是想知道如何在xml layout, static block, cms page
或另一个.phtml
文件中添加.phtml文件。非常感谢。
用于改进文档/答案
自定义文件路径
app/design/frontend/{Package}/{theme}/Magento_Theme/templates/html/test.phtml
调用xml layout
文件
<block class="Magento'Framework'View'Element'Template" name="test_file" template="Magento_Theme::html/test.phtml"/>
调用blocks and cms pages
{{block class="Magento'Framework'View'Element'Template" name="test_file" template="Magento_Theme::html/test.phtml"}}
调用任何phtml
文件
<?php include ($block->getTemplateFile('Magento_Theme::html/test.phtml')) ?>
OR,与之前一样
<?php echo $this->getLayout()->createBlock("Magento'Framework'View'Element'Template")->setTemplate("Magento_Theme::html/test.phtml")->toHtml();?>
一般约定为<VendorName_ModuleName>::relative/path/to/phtml/in/templates/
示例:
-
在xml布局中
<block class="Magento'Framework'View'Element'Template" name="default_home_page" template="Magento_Cms::default/home.phtml"/>
-
在phtml中
<?php include ($block->getTemplateFile('Magento_Catalog::product/list/toolbar/viewmode.phtml')) ?>
您的自定义文件路径
app/code/{vendor_name}/{module_name}/view/frontend/templates/custom.phtml
将phtml文件调用到cms块和页面:-
{{block class="Magento'Framework'View'Element'Template" template="Vendor_Module::custom.phtml"}}
或
{{block class="Vendor'Module'Block'your_file_name" template="Vendor_Module::custom.phtml"}}
调用xml布局文件:-
<block class="Magento'Framework'View'Element'Template" template="Vendor_Module::custom.phtml">
调用另一个phtml文件:-
<?php echo $this->getLayout()->createBlock("Magento'Framework'View'Element'Template")->setTemplate("Vendor_Module::custom.phtml")->toHtml();?>
从另一个phtml模板文件中调用phtml模版文件:
<?php echo $this->getLayout()->createBlock("Magento'Framework'View'Element'Template")->setTemplate("Magento_Theme::test.phtml")->toHtml(); ?>
test.phtml将位于app/design/frontend/Vendor/themename/Magento_Theme/templates 中