Magento2 - Wie man einen Blockinhalt auf der Homepage anzeigt


14

Wie zeige ich einen Blockinhalt auf der Homepage an?

Nachdem ich magento2 ohne Beispieldaten installiert hatte, wählte ich das Thema 'Magento Luma' und fügte den Block 'Home Page Block' hinzu und kopierte den Code aus dem Beispielspeicher.

Auf der Homepage wird jedoch nichts angezeigt. Wie kann ich meinen CMS-Block auf der Homepage wie im Mustergeschäft anzeigen?

mein Zuhause Bildbeschreibung hier eingeben

Mustergeschäft

Bildbeschreibung hier eingeben


Du meinst das Anzeigen von benutzerdefiniertem cms-Blocktext / -Inhalt oder von cms-Blocktext / -Inhalt im Admin-Bereich?
Bojjaiah,

@magentotwo Ich erstelle einen benutzerdefinierten cms-Block. Ich möchte wissen, wie dieser Block auf der Startseite angezeigt wird
Moon

hast du unten die lösung ausprobiert?
Bojjaiah

Der Inhalt der Homepage in den Beispieldaten stammt von Widgets.

Antworten:


45

Gehen Sie im Admin-Bereich zu Content-> Pages und bearbeiten Sie die Homepage. Wenn Sie Ihren statischen Block im Admin-Bereich erstellt haben, fügen Sie Folgendes zur Registerkarte Content hinzu

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

Wenn Sie einen benutzerdefinierten Block mithilfe eines Moduls erstellt haben, fügen Sie Folgendes zur Registerkarte Inhalt der Startseite hinzu

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

Speichern Sie dann die Änderungen und leeren Sie den Magento-Cache. Stellen Sie statische Inhalte bereit oder löschen Sie sie. Aktualisieren Sie jetzt die Startseite.

Wenn dies nicht funktioniert hat, lassen Sie es mich wissen


Es wirkt wie ein Zauber! Vielen Dank Chamal!
Mond

Gibt es einen Link, über den ich mehr erfahren kann? Magento-Block-Klasse und Block-ID-Code für Front-End?
Mond

1
Ich fand devdocs.magento.com/guides/v2.0/howdoi/frontend/… dies ist ein guter Leitfaden zum Verständnis der Magento 2-Block-Architektur
Chamal Chamikara

Aus meinem Modul habe cms_index_index.xmlich dies im Inhalt der Startseite hinzugefügt - <block class="Vendor\Module\Block\Index" name="modulename" template="module.phtml"></block> and It says Fehler beim Filtern der Vorlage: Ungültige Vorlagendatei: 'Vendor_Module :: module.phtml' im Modul: 'Vendor_Module' Name des Blocks: 'index_0'``
Slimshadddyyy

10

Versuchen Sie dies oder posten Sie Ihren Code, dann schlagen wir Ihnen vor, wo Sie einen Fehler gemacht haben.

Datei blockieren

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

nach dem Erstellen von Flush-Cache.

Ich hoffe, dies wird dir helfen. Wenn Sie keine Ergebnisse erhalten, lassen Sie es mich wissen.


Vielen Dank für Ihre Antwort! Ich werde es später versuchen und Ihnen das Ergebnis
Moon

3

Auf der Homepage können Sie den statischen Block wie folgt aufrufen

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

Auf der HTML-Seite können Sie den statischen Block wie folgt aufrufen.

<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.