magento 如何将 widget 标签转换为 html

问题描述 投票:0回答:1

我已经看到,当小部件添加到特定页面并使用文本编辑器时,它会显示

 {{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

php magento2
1个回答
0
投票

我找到了这个博客,我在 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

© www.soinside.com 2019 - 2024. All rights reserved.