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.