मैं <head>… </ head> अनुभाग में मेटा टैग कैसे जोड़ूँ?


19

मैं <head>...</head>Drupal 8 में अनुभाग के अंदर निम्नलिखित मेटा टैग कैसे जोड़ सकता हूं ?

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

जवाबों:


49

विभिन्न स्रोतों से मुझे ड्रुपल 8 में मेटा टैग जोड़ने का अलग तरीका मिला, इसलिए सभी तरीकों को संकलित किया।


1. THEME.theme फ़ाइल का उपयोग करना

मुझे लगता है कि हितधारकों पर एक ही सवाल पूछा गया है: ड्रुपल 8 में सिर के लिए मेटा टैग जोड़ें और यदि आप @ डैनियलिशको का उत्तर देखते हैं , तो उन्होंने निम्नलिखित कोड प्रदान किया है,

बस अपनी THEME.themeफ़ाइल में निम्नलिखित कोड जोड़ें , कैश साफ़ करें और आप जाना अच्छा होगा। नोट: function theme_preprocess_html(&$variables) {...}आपकी .theme फ़ाइल में पहले से ही होना चाहिए, इसलिए नया न बनाएं, अन्यथा यह त्रुटि देगा।

function theme_preprocess_html(&$variables) {

  $xuacompatible = [
    '#tag' => 'meta',
    '#attributes' => [
      'http-equiv' => 'x-ua-compatible',
      'content' => 'ie=edge',
    ],
  ];


  $variables['page']['#attached']['html_head'][] = [$xuacompatible, 'x-ua-compatible'];
}

आउटपुट छवि:

यहां छवि विवरण दर्ज करें


2. फ़ाइल के माध्यम से:

इस विषय पर एक और प्रश्न पूछा गया था: ड्रुपल 8 मेटा टैग कैसे सेट / रिमूव करें

यदि आप उपर्युक्त लिंक में प्रश्न पढ़ते हैं, तो प्रश्नकर्ता ने उल्लेख किया है कि html.html.twigटेम्पलेट फ़ाइल का उपयोग करके आप सीधे मेटा टैग जोड़ सकते हैं<head>....</head>

html.html.twigवह फ़ाइल जिसे आप पा सकते हैं core/modules/sytem/templates/html.html.twig, आप उसे अपने थीम के टेम्पलेट फ़ोल्डर में कॉपी और पेस्ट कर सकते हैं और आपका थीम उस एक का उपयोग करेगा।

से html.html.twig

<!DOCTYPE html>
<html{{ html_attributes }}>
  <head>
    <head-placeholder token="{{ placeholder_token|raw }}">
    <title>{{ head_title|safe_join(' | ') }}</title>
    <css-placeholder token="{{ placeholder_token|raw }}">
    <js-placeholder token="{{ placeholder_token|raw }}">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  </head>
  <body{{ attributes }}>
    {#
      Keyboard navigation/accessibility link to main content section in
      page.html.twig.
    #}
    <a href="#main-content" class="visually-hidden focusable">
      {{ 'Skip to main content'|t }}
    </a>
    {{ page_top }}
    {{ page }}
    {{ page_bottom }}
    <js-bottom-placeholder token="{{ placeholder_token|raw }}">
  </body>
</html>

आउटपुट छवि:

यहां छवि विवरण दर्ज करें

नोट: यह मेरा अपना तर्क है और इसके लिए संदर्भ खोजने की कोशिश की गई, मुझे इसके बारे में कोई संदर्भ नहीं मिला, सिवाय इसके कि ऊपर दिए गए लिंक में प्रश्नकर्ता द्वारा एक पंक्ति प्रदान की जाए, लेकिन चूंकि हम अन्य सामान जोड़ने के लिए टेम्पलेट फ़ाइल को संपादित करते हैं, इसलिए हम जोड़ने के लिए उपयोग नहीं कर सकते हैं टैग। कृपया टिप्पणी करें कि यदि यह सही नहीं है, तो यह मेरे लिए भी सीखने का अनुभव होगा, धन्यवाद।


3. अपना खुद का कस्टम मॉड्यूल बनाएं

यदि आप इस ट्यूटोरियल का संदर्भ लेते हैं: Drupal 8 में नए HTML टैग्स जोड़ने पर , उन्होंने Drupal 8 में टैग जोड़ने का सामान्य तरीका बताया है। मैंने आपकी आवश्यकता के अनुसार संशोधित किया है। आप इस ट्यूटोरियल को देख सकते हैं: Drupal 8 : Drupal 8 में सरल मॉड्यूल कैसे विकसित किया जाए, इसके लिए एक सरल मॉड्यूल बनाएं , और निम्न कोड आपके मॉड्यूल_name.module फ़ाइल में जाएगा, बस।

के लिए module_name.moduleफ़ाइल,

<?php
/**
 * Implements hook_page_attachments().
 */
function module_name_page_attachments(array &$page) {
  $xuacompatible = [
        '#tag' => 'meta',
        '#attributes' => [
          'http-equiv' => 'x-ua-compatible',
          'content' => 'ie=edge',
        ],
      ];
  $page['#attached']['html_head'][] = [$xuacompatible, 'x-ua-compatible'];
}

मुझे लगता है, 1 विकल्प में वर्णित यह विधि और विधि काफी समान हैं।


4. Drupal मॉड्यूल का उपयोग करना

मुझे यकीन नहीं है, इस दृष्टिकोण का उपयोग कैसे करें, मैंने खोजने की कोशिश की। यहाँ मैं उल्लेख कर रहा हूँ क्योंकि जब मेटा टैग जोड़ने की बात आती है तो यह मॉड्यूल हमेशा पॉप-अप होता है।

मुझे लगता है कि इस दृष्टिकोण का आपको उपयोग करना चाहिए। स्वीकृत उत्तर में उसने मॉड्यूल तरीके का वर्णन किया है और आप इसके लिए मेटाटैग मॉड्यूल का उपयोग कर सकते हैं । इस मॉड्यूल में आश्रित मॉड्यूल टोकन और Ctools हैं , जो कि बहुत ही सामान्य बात है। उस उत्तर में पूरी प्रक्रिया का वर्णन किया गया है, इसलिए मैं यहां उल्लेख नहीं कर रहा हूं।


अपनी पोस्ट लिखने से पहले मैंने मेटाटैग मोडुल की जाँच की, लेकिन मुझे नहीं पता कि मुझे कौन सा क्षेत्र चुनना है जो मुझे चाहिए। और यहां तक ​​कि अगर ऐसा होता है तो मुझे हर सामग्री प्रकार के लिए ऐसा करना होगा। शायद एक और अधिक आरामदायक तरीका है?
लेसली एन।

@lesleyn। मैंने अपना उत्तर अपडेट कर दिया है, मैंने मेटाटैग को जोड़ने का अलग तरीका शामिल किया है, लेकिन आप की तरह मैंने यह भी पता नहीं लगाया कि मेटाटैग मॉड्यूल का उपयोग कैसे जोड़ा जाए, मैं बात करता हूं, उस मॉड्यूल के माध्यम से हम टोकन की सूची में जो कुछ भी प्रदान करते हैं, उस तक पहुंच सकते हैं, इसलिए अपने सूचीबद्ध मेटाटैग का उपयोग करें, मुझे लगता है कि हमने इसके लिए टोकन बनाने के लिए नामांकित किया है, यह जूस मेरा जंगली अनुमान है। ओथ ने संपर्क किया कि मैंने परीक्षण किया है, और वे काम कर रहे हैं।
कोडनक्स

1
इसे सही के रूप में चिह्नित किया जाना चाहिए =) +1
चक्रवात

1
@ AntonínSlejška, n-1 और n-3 दोनों ही बहुत अधिक विधि हैं, अंतर n-1 में है। आप कोड को .theme फ़ाइल में जोड़ रहे हैं जबकि n-3 में आप उसके लिए कस्टम मॉड्यूल बना रहे हैं। मैं कहूंगा कि एन -1 के लिए जाना, स्वच्छ और आसान होगा। और HOMEPAGE के लिए, आपको उस कोड की अतिरिक्त पंक्ति की आवश्यकता होगी जो मैंने n-1 में प्रदान की है। मैंने आपकी जरूरत के लिए सिर्फ n-1 में अपडेट जोड़ा है, मुझे बताएं कि क्या आप इसे कॉपी-पेस्ट करते हैं, तो मुझे इसे हटाने की जरूरत है। अगर अभी भी कोई समस्या है, तो कृपया मुझे बताएं।
कोडनेक्स्ट

@CodeNext मुझे खेद है। मैं कैशे क्लियर करना भूल गया हूं। यह सही काम करता है। सहायता के लिए धन्यवाद। मैंने कोड कॉपी कर लिया है।
एंटोनिन स्लेज्स्का

4

किसी कंट्रोलर, ब्लॉक, एंटिटी, फील्ड या अन्य स्थानों पर सामग्री जोड़ते समय आपको हुक बनाने की आवश्यकता नहीं होती है।

आप किसी भी विषय के लिए सीधे मेटा टैग को जोड़ने या तत्व प्रदान कर सकते हैं ( #theme, #type, #markup):

$build['username'] = [
  '#theme' => 'username',
  '#account' => \Drupal::currentUser(),
  '#attached' => [
    'html_head' => [
      [
        [
          '#tag' => 'meta',
          '#attributes' => [
            'name' => 'foo',
            'content' => 'bar',
          ],
        ],
        'my_module_foo',
      ],
    ],
  ],
];

जब पृष्ठ स्तर तक टैग बुलबुले प्रदान किए जाते हैं और <head>...</head>अनुभाग में जोड़ा जाता है ।

प्रीप्रोसेस हुक में आप शीर्ष स्तर से जुड़ सकते हैं $variables, /drupal//a/288989/47547 देखें


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.