Я создаю тему magento 2. Я хочу отображать пользовательские блоки на главной странице cms.
Я хочу знать, чтобы показать статические блоки в макете phtml и xml, содержимое страницы cms
Как я могу сделать?
Я создаю тему magento 2. Я хочу отображать пользовательские блоки на главной странице cms.
Я хочу знать, чтобы показать статические блоки в макете phtml и xml, содержимое страницы cms
Как я могу сделать?
Пожалуйста, попробуйте использовать приведенные ниже коды.
В файле Phtml:
<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
в контенте CMS:
{{block class="Magento\\Cms\\Block\\Block" block_id="block_identifier"}}
В XML-файле:
<referenceContainer name="content">
<block class="Magento\Cms\Block\Block" name="block_identifier">
<arguments>
<argument name="block_id" xsi:type="string">block_identifier</argument>
</arguments>
</block>
</referenceContainer>
app/design/frontend/Magento/<Vendor>/<theme>/Magento_Catalog/templates/product/view/details.phtm
. Я до сих пор не могу увидеть этот блок. Я сделал что-то не так?
- person crashtestxxx; 21.02.2016
<?php echo $this->getLayout()->createBlock('vendor\module\Block\BlockClass')->setName('name')->setTemplate('vendor_module::template.phtml')->toHtml(); ?>
- person cjohansson; 21.05.2018
Вышеприведенное верно, кроме того, файл xml для домашней страницы находится cms_index_index.xml
внутри папки Magento_Cms
(и он должен находиться в вашей собственной папке пакета/темы, а не в Magento/blank
или app/code
).
Просто поместите приведенный выше xml-код в тег <body>
в этом файле, в зависимости от настроек кеша вам может потребоваться очистить их, чтобы увидеть изменения.
ни один из них не работает для размещения статических блоков через default.xml Пожалуйста, пришлите правильные примеры. В 2.0.7 Когда я применяю к своей теме следующее, после создания статического блока в администрации с именем socialimg / socialimg в качестве идентификатора блока ничего не появляется. ни даже в памяти. нет даже поиска в exception.log или system.log
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="header.panel">
<block class="Magento\Framework\View\Element\Html\Links" name="header.links">
<arguments>
<argument name="css_class" xsi:type="string">header links</argument>
</arguments>
</block>
</referenceContainer>
<referenceBlock name="socialimg1">
<block class="Magento\Cms\Block\Block" name="socialimg">
<arguments>
<argument name="block_id" xsi:type="string">socialimg</argument>
</arguments>
</block>
</referenceBlock>
<referenceBlock name="logo">
<arguments>
<argument name="logo_img_width" xsi:type="number">148</argument>
<argument name="logo_img_height" xsi:type="number">43</argument>
</arguments>
</referenceBlock>
<referenceContainer name="footer">
<block class="Magento\Store\Block\Switcher" name="store_switcher" as="store_switcher" after="footer_links" template="switch/stores.phtml"/>
</referenceContainer>
<referenceBlock name="report.bugs" remove="true"/>
<move element="copyright" destination="before.body.end"/>
</body>
</page>
Используйте следующий код для отображения статического блока на странице CMS:
{{block class="Magento\\Cms\\Block\\Block" block_id="block_identifier"}}
Используйте следующий код для отображения статического блока в файле phtml:
<?php echo $block->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>