我已经看到,当小部件添加到特定页面并使用文本编辑器时,它会显示
{{widget type="Magento\\CatalogWidget\\Block\\Product\\ProductsList" products_per_page="8" products_count="8" template="product/widget/content/grid.phtml" conditions_encoded="a:2:[i:1;a:4:[s:4:`type`;s:50:`Magento|CatalogWidget|Model|Rule|Condition|Combine`;s:10:`aggregator`;s:3:`all`;s:5:`value`;s:1:`1`;s:9:`new_child`;s:0:``;]s:4:`1--1`;a:4:[s:4:`type`;s:50:`Magento|CatalogWidget|Model|Rule|Condition|Product`;s:9:`attribute`;s:3:`sku`;s:8:`operator`;s:2:`()`;s:5:`value`;s:60:`WS12, WT09, MT07, MH07, 24-MB02, 24-WB04, 241-MB08, 240-LV05`;]]"}}
如何将其转换为 html
我找到了这个博客,我在 Magento 2.4.3-p1 中测试了它,它有效!
https://www.rohanhapani.com/how-to-convert-cms-page-content-to-html-in-magento-2/
/**
* Created By : Rohan Hapani
*/
/**
* @var \Magento\Cms\Model\Template\FilterProvider
*/
protected $_filterProvider;
/**
* @var \Magento\Store\Model\StoreManagerInterface
*/
protected $_storeManager;
/**
* @param \Magento\Cms\Model\Template\FilterProvider $filterProvider
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
*/
public function __construct(
\Magento\Cms\Model\Template\FilterProvider $filterProvider,
\Magento\Store\Model\StoreManagerInterface $storeManager
) {
$this->_filterProvider = $filterProvider;
$this->_storeManager = $storeManager;
}
/**
* Static block $content
*/
public function getContentFromStaticBlock($content)
{
$storeId = $this->_storeManager->getStore()->getId();
return $this->_filterProvider->getBlockFilter()->setStoreId($storeId)->filter($content);
}
现在,调用您的模板文件以使用 HTML 内容:
<?php echo $block->getContentFromStaticBlock($content); ?>
完整学分:Rohan Hapani