Magento2 - Как отобразить содержимое блока на главной странице
Как отобразить содержимое блока на главной странице?
После установки magento2 без образцов данных я выбрал тему "Magento Luma", добавил блок "Блок домашней страницы" и скопировал код из хранилища образцов.
Но на домашней странице ничего не отображается, как показать мой блок cms на домашней странице, например, в магазине образцов?
Хранилище образцов
3 answers
В панели администратора перейдите в раздел Содержимое->Страницы и отредактируйте домашнюю страницу, и если вы создали свой статический блок из панели администратора, добавьте следующее на вкладку Содержимое
{{block class="Magento\Cms\Block\Block" block_id="your_block_identifier"}}
И если вы создали пользовательский блок с помощью модуля, добавьте следующее на вкладку содержимого домашней страницы
{{block class="Vendor\ModuleName\Block\BlockName" template="Vendor_ModuleName::yourcustomblock.phtml"}}
Затем сохраните изменения, очистите кэш magento и разверните/удалите статическое содержимое , а теперь обновите домашнюю страницу.
Если это не сработало, дайте мне знать
Попробуйте это или опубликуйте свой код, тогда мы подскажем вам, где вы ошиблись.
Файл блокировки
<?php
namespace Learning\SmartSearch\Block;
class SmartSearch extends \Magento\Framework\View\Element\Template
{
public function getTitle()
{
return "Smart Search";
}
}
Etc/module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="Learning_SmartSearch" setup_version="1.0.0">
</module>
</config>
View/layout/cms_index_index.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="Learning\SmartSearch\Block\SmartSearch" template="Learning_SmartSearch::html/cms.phtml"/>
</referenceContainer>
</body>
</page>
Просмотр/шаблоны/html/cms.phtml
<h1><?php echo $block->getTitle(); ?></h1>
После создания полного кэша.
Я надеюсь, что это поможет вам. Если вы не получите результатов, дайте мне знать.
На домашней странице вы можете вызвать статический блок, как описано ниже
{{block class="Magento\Cms\Block\Block" block_id="your_block_identifier"}}
На html-странице вы можете вызвать статический блок, как описано ниже.
<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>