Magento 2: प्रत्येक पृष्ठ के <head> में मनमाना HTML जोड़ना?


23

Magento 2 में, क्या प्रत्येक फ्रंटेंड / कार्ट पेज के लिए HTML का एक मनमाना बिट जोड़ना संभव है <head/>?

मुझे पता है कि मैं सामग्री / <body>क्षेत्र को इस तरह से कोड के साथ एक ब्लॉक जोड़ सकता हूं

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="content">
            <block type="Pulsestorm\Test\Block\Head" name="pulsestorm.head" as="pulsestorm.head" template="pulsestorm/head.phtml"/>
        </referenceBlock>
    </body>
</page>

हालाँकि, यह स्पष्ट नहीं है कि <head/>किसी पृष्ठ के तत्व में सामग्री जोड़ने के लिए समान ब्लॉक है या नहीं । मैं देव डॉक्स साइट और स्रोत कोड के माध्यम से देखा है, और वहाँ के लिए संदर्भ के बहुत सारे है नई आप एक साथ उपयोग कर सकते हैं टैग <head/>टैग

<head>
    <css.../>
    <js.../>
</head>

लेकिन मुझे <head/>Magento 2 में किसी पृष्ठ के अनुभाग में मनमाना HTML / पाठ जोड़ने का कोई तरीका नहीं मिल रहा है ।

जवाबों:


27

इस बारे में 100% निश्चित नहीं है, लेकिन मुझे लगता है कि आप इसका उपयोग करके सिर में कोड जोड़ सकते हैं:

<body>
    <referenceBlock name="head.additional">
        <block class="Pulsestorm\Test\Block\Head" name="pulsestorm.head" as="pulsestorm.head" template="pulsestorm/head.phtml"/>
    </referenceBlock>
</body>

मुझे पता है, यह कोड जोड़ने में अजीब लगता है <body>लेकिन इसे प्रस्तुत करना है, <head>लेकिन यहाँ मुझे ऐसा क्यों लगता है:

पृष्ठ का "कंकाल" इस टेम्पलेट द्वारा निर्धारित किया गया है: https://github.com/magento/magento2/blob/develop/app/code/Magento/Theme/view/base/templates/root.phtml
यह टेम्पलेट इकोस $headAdditional( और अन्य चर)
ये चर \ Magento \ फ्रेमवर्क \ View \ Result :: रेंडर () और वैरिएबल की तरह आरंभ में हैं $headAdditional:

'headAdditional' => $addBlock ? $addBlock->toHtml() : null,

कहाँ $addBlockहै

$addBlock = $this->getLayout()->getBlock('head.additional');

फिर मैंने इसके संदर्भ खोजे head.additionalऔर इसमें पायाapp/code/Magento/Catalog/view/frontend/layout/catalog_product_opengraph.xml

<body>
    <referenceBlock name="head.additional">
        <block class="Magento\Catalog\Block\Product\View" name="opengraph.general" template="Magento_Catalog::product/view/opengraph/general.phtml">
            <block class="Magento\Directory\Block\Currency" name="opengraph.currency" as="meta.currency" template="Magento_Catalog::product/view/opengraph/currency.phtml"/>
        </block>
    </referenceBlock>
</body>

मैंने वास्तविक कोड का परीक्षण नहीं किया है (मैं आलसी हो रहा हूं) लेकिन यह एकमात्र लीड है जो मेरे पास है।


3
एक या दो साल में आप स्टैक एक्सचेंज में एक सवाल पूछने के लिए पर्याप्त आलसी हो जाएंगे जब आपके पास एक होगा :) उपरोक्त पूरी तरह से काम किया (आंख रोल और सिर हिलाता नहीं है)
एलन स्टॉर्म

4
यदि प्रतिनिधि: यह तितली फ्लैप है जो मैं एम 2 चीजों को जिस तरह से नापसंद करने जा रहा हूं, वह सुनामी से पहले है।
ब्रेंडन फाल्कोस्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.