Magento2-如何在首页上显示阻止内容


14

如何在首页上显示屏蔽内容?

在没有示例数据的情况下安装了magento2之后,我选择了“ Magento Luma”主题并添加了“ Home Page Block”块,并从示例存储中复制了代码。

但首页上没有任何内容,如何像示例商店一样在首页上显示我的cms块?

我的家 在此处输入图片说明

样品店

在此处输入图片说明


您的意思是显示自定义cms阻止文本/内容或管理面板创建的cms阻止文本/内容?
Bojjaiah 2015年

@magentotwo我创建一个自定义的CMS阻止我想知道如何在首页上显示该块,旋转
月亮

您是否尝试过以下解决方案?
Bojjaiah 2015年

样本数据中的主页内容来自小部件。

Answers:


45

在管理面板中,转到“内容”->“页面”并编辑主页,如果您从管理面板创建了静态块,则将以下内容添加到“内容”标签中

{{block class="Magento\Cms\Block\Block" block_id="your_block_identifier"}}

并且如果您使用模块创建了自定义块,请在首页内容标签中添加以下内容

{{block class="Vendor\ModuleName\Block\BlockName" template="Vendor_ModuleName::yourcustomblock.phtml"}} 

然后保存更改并刷新magento缓存并部署/删除静态内容,现在刷新主页。

如果不行,请通知我


它就像一个魅力!非常感谢Chamal!
月亮

有什么链接我可以了解更多有关此的信息吗?magento前端的块类和块ID代码?

1
我发现devdocs.magento.com/guides/v2.0/howdoi/frontend/…这是了解magento 2块体系结构的很好指南
Chamal Chamikara

从我的模块中cms_index_index.xml,我在主页内容中添加了此内容- <block class="Vendor\Module\Block\Index" name="modulename" template="module.phtml"></block> and It says 错误过滤模板:无效的模板文件:模块中的'Vendor_Module :: module.phtml':'Vendor_Module'块的名称:'index_0'``
Slimshadddyyy

10

试试这个,否则发布您的代码,然后我们会建议您哪里出错了。

阻止文件

<?php
namespace Learning\SmartSearch\Block;

class SmartSearch extends \Magento\Framework\View\Element\Template
{
    public function getTitle()
    {
        return "Smart Search";
    }
}

等/ 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>

查看/布局/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>

创建刷新缓存后。

我希望这能帮到您。如果您没有得到结果,请告诉我。


谢谢您的回答!我会稍后再试,让你知道结果
月球

3

在首页中,您可以像下面提到的方法一样调用静态块

{{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();?>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.