Answers:
对于显示类型=所有产品小部件
{{widget type="Magento\Catalog\Block\Product\Widget\NewWidget"
display_type="all_products" products_count="5" template="product/widget/new/content/new_grid.phtml"}}
和
<?php echo $this->getLayout()->createBlock("Magento\Catalog\Block\Product\Widget\NewWidget")->setDisplayType("all_products")->setProductsCount("5")->setTemplate("product/widget/new/content/new_grid.phtml")->toHtml(); ?>
对于显示类型=新产品小部件
{{widget type="Magento\Catalog\Block\Product\Widget\NewWidget" display_type="new_products" products_count="5" template="product/widget/new/content/new_grid.phtml"}}
和
<?php echo $this->getLayout()->createBlock("Magento\Catalog\Block\Product\Widget\NewWidget")->setDisplayType("new_products")->setProductsCount("5")->setTemplate("product/widget/new/content/new_grid.phtml")->toHtml(); ?>
如果我们看一下客户模块,例如:
供应商/ magento /模块客户/视图/前端/模板/表格/edit.phtml
<?php $_dob = $block->getLayout()->createBlock('Magento\Customer\Block\Widget\Dob') ?>
<?php if ($_dob->isEnabled()): ?>
<?php echo $_dob->setDate($block->getCustomer()->getDob())->toHtml() ?>
<?php endif ?>
如我们所见,我们可以直接在phtml模板中调用小部件:$ block-> getLayout()-> createBlock('your \ widget')。
尝试以下代码,并检查其是否有效:
<?php
$filter = new Mage_Widget_Model_Template_Filter();
$_widget = $filter->filter('{{widget type="cms/widget_page_link" template="cms/widget/link/link_block.phtml" page_id="2"}}');
echo $_widget;
?>
其中page_id =“ 2”是我的小部件,只是替换为您的小部件ID。