Belirli meta etiketler nasıl kaldırılır?


18

Bu etiketleri Drupal 7'deki sayfalarımdan nasıl kaldırabilirim?

<link rel="shortlink" href=" .... " />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<link rel="canonical" href="...." />

Güncelleme : Jeneratör ve kurallı etiketleri kaldıran template.php kodum var.

function program_html_head_alter(&$head_elements) {
  unset($head_elements['system_meta_generator']);
  foreach ($head_elements as $key => $element) {
    if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical') {
      unset($head_elements[$key]); 
    }
  }
}

Herkes kısa bağlantı etiketini kaldırmak için bir şeyler ekleyebilir mi?


1
Her şey iyi görünüyor, ama neden kanonik çıkar? Bu aslında yararlı.

Yanıtlar:


11

Bu, $ head değişkeninde html.tpl.php içinde görüntülenir . drupal_get_html_head () kullanılarak template_process_html değişkenlerine $ head eklenir . Bu işlevde hook_html_head_alter () işlevinin çağrıldığını görebilirsiniz.

Bunları kaldırabilirsiniz.

Ancak, bir düğümün düğüm / nid ve takma ad yoluyla kullanılabilmesi durumunda, bir arama motorunun sitenizde yinelenen içeriğe sahip olduğunuzu düşünmesini önlemek için bu bağlantıların SEO için önemli olabileceğini unutmayın.


hmm onu ​​bulmak ama yine de kaldıramıyorum :) Ben yakında php öğrenmek gerektiğini düşünüyorum :) Ben template.php (şablonda) eklemek olabilir kodu bulmak ve kod "Jeneratör" satırını kaldırın. fonksiyon program_html_head_alter (& $ head_elements) {unset ($ head_elements ['system_meta_generator']); }

ama yine de kaldırmak gereken 2 ek satır ile sorun var. Özel ana sayfanız ve kanonik URL'niz sadece alt sayfa için ana etki alanı için değil ... Bu hatlar

Temiz URL'ler ve pathauto içeren yeni bir D7 kurulumum varsa, standart URL bağlantısı otomatik olarak ayarlanacak mı?
Andy

Olmalı, evet.
Berdir

5

Template.php dosyamda aşağıdaki işlevi kullanıyorum:

/**
 * Used to remove certain elements from the $head output within html.tpl.php
 *
 * @see http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_html_head_alter/7
 * @param array $head_elements
 */
function YOUR_THEME_NAME_html_head_alter(&$head_elements) {
    $remove = array(
        'system_meta_generator',
        'metatag_canonical',
        'metatag_shortlink'
    );

    foreach ($remove as $key) {
        if (isset($head_elements[$key])) {
            unset($head_elements[$key]);
        }
    }

    // Use this loop to find out which keys are available.
    /* -- Delete this line to execute this loop
    echo '<pre>';
    foreach ($head_elements as $key => $element) {
        echo $key ."\n";
    }
    echo '</pre>';
    // */
}

Bu benim için işe yaramadı - 'metatag_canonicalve 'metatag_shortlinkindeksleri olarak mevcut değil $head_elements(bu Drupal 7'de). @Levente tarafından verilen cevap iyi çalıştı.

4

Ben de kısa bağlantı çözdüm, kodunuzu modyfying.

Birisi düzgün bir şekilde toparlayabilir, çünkü düzgün bir şekilde nasıl koyacağımı bilmiyorum ve ne bu şekilde yan etkileri varsa ya da olmasın. Yine de istenmeyen bağlantıların kafadan kaybolmasını sağlar.

function nameof_mytheme_html_head_alter(&$head_elements) {
  unset($head_elements['system_meta_generator']);
  foreach ($head_elements as $key => $element) {
    if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical') {
      unset($head_elements[$key]);
    }

    if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'shortlink') {
      unset($head_elements[$key]);
    }
  }
}

Evet, bu bir kasabın kanonik bağlantılara karşı tutumu, ancak daha iyi bir suçlama gelene kadar, bu hala daha iyi.

BU NEDEN: SADECE yinelenen sayfalarda gösterilen, tercih edilen sürüm olmayan kurallı bağlantılara ihtiyacınız var. Orijinal sayfalar yalnız bırakılmalıdır: orada hiçbir kurallı gösterilmemelidir! Bu yüzden hala kasabam var.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.