Magento2-홈페이지에 블록 콘텐츠를 표시하는 방법


14

홈페이지에 블록 콘텐츠를 표시하는 방법은 무엇입니까?

샘플 데이터없이 magento2를 설치 한 후 'Magento Luma'테마를 선택하고 'Home Page Block'블록을 추가하고 샘플 저장소에서 코드를 복사했습니다.

그러나 홈페이지에 아무것도 나타나지 않습니다. 샘플 스토어와 같은 홈페이지에 내 cms 블록을 표시하는 방법은 무엇입니까?

내 집 여기에 이미지 설명을 입력하십시오

견본 상점

여기에 이미지 설명을 입력하십시오


사용자 정의 cms 블록 텍스트 / 컨텐츠 또는 관리자 패널에서 생성 한 cms 블록 텍스트 / 컨텐츠를 표시 하시겠습니까?
Bojjaiah

@magentotwo 나는 사용자 정의 cms 블록을 만듭니다 홈 페이지 에이 blcok를 표시하는 방법을 알고 싶습니다
Moon

아래 해결책을 시도 했습니까?
Bojjaiah

샘플 데이터의 홈페이지 컨텐츠는 위젯에서 제공됩니다.

답변:


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 감사합니다!

이것에 대해 더 배울 수있는 링크가 있습니까? 프론트 엔드에 대한 마 젠토 블록 클래스 및 블록 ID 코드?

1
내가 발견 devdocs.magento.com/guides/v2.0/howdoi/frontend/... 이 이해 젠토 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";
    }
}

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>

view / templates / html / cms.phtml

<h1><?php echo $block->getTitle(); ?></h1>

플러시 캐시를 생성 한 후

이것이 도움이되기를 바랍니다. 결과를 얻지 못하면 알려주십시오.


답변 주셔서 감사합니다! 나중에 시도하고 결과를 알려 드리겠습니다
Moon

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();?>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.