Bagaimana cara menghapus meta tag tertentu?

18

Bagaimana saya bisa menghapus tag ini dari halaman saya di Drupal 7?

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

Pembaruan : Saya memiliki kode untuk template.php, yang menghapus tag generator dan kanonik.

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]); 
    }
  }
}

Adakah yang bisa menambahkan sesuatu untuk menghapus tag tautan pendek?

Pierre
sumber
1
Semuanya terlihat bagus, tetapi mengapa mengambil kanonik? Ini sebenarnya membantu.

Jawaban:

11

Ini ditampilkan dalam html.tpl.php di variabel $ head. $ head ditambahkan ke variabel dalam template_process_html dengan menggunakan drupal_get_html_head () . Dalam fungsi itu, Anda dapat melihat bahwa hook_html_head_alter () dipanggil.

Di sana Anda dapat menghapus ini.

Namun, perhatikan bahwa tautan ini dapat penting untuk SEO, untuk menghindari bahwa mesin pencari berpikir bahwa Anda memiliki duplikat konten di situs Anda, jika misalnya sebuah node tersedia melalui node / nid dan alias.

Berdir
sumber
hmm saya menemukannya tetapi masih tidak bisa menghapusnya :) Saya pikir saya harus segera belajar php :) Saya menemukan kode yang dapat ditambahkan ke template.php (dalam templat) dan kode hapus baris "Generator". function program_html_head_alter (& $ head_elements) {unset ($ head_elements ['system_meta_generator']); }
tetapi saya masih memiliki masalah dengan 2 baris tambahan yang harus saya hapus. Ini tidak baik untuk seo jika Anda memiliki beranda khusus dan kanonik memberikan url bukan untuk domain utama hanya untuk subhalaman ... sama dengan shortlink - mengapa seseorang dapat melihat bahwa artikel memiliki alamat tambahan dengan /node/... ide bodoh untuk menambahkan baris ini ke d7
Jadi jika saya memiliki instalasi D7 baru dengan URL bersih dan pathauto, tautan URL kanonik akan secara otomatis ditetapkan?
Andy
Seharusnya begitu.
Berdir
5

Saya menggunakan fungsi berikut dalam file template.php saya:

/**
 * 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>';
    // */
}
Fleshgrinder
sumber
Ini tidak berfungsi untuk saya - 'metatag_canonicaldan 'metatag_shortlinktidak ada sebagai indeks $head_elements(ini ada di Drupal 7). Jawaban yang diberikan oleh @Levente bekerja dengan baik.
4

Saya juga memecahkan shortlink, memodifikasi kode Anda.

Seseorang dapat merapikannya dengan benar, karena saya tidak tahu bagaimana cara memasangnya dengan benar, dan juga apakah itu memiliki efek samping dengan cara ini atau tidak. Itu membuat tautan yang tidak diinginkan menghilang dari kepala.

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]);
    }
  }
}

Ya, ini adalah sikap tukang daging terhadap hubungan kanonik, tetapi sampai tidak ada sulosi yang lebih baik, ini masih lebih baik.

ITULAH MENGAPA: Anda memerlukan tautan kanonik yang HANYA ditunjukkan pada halaman duplikat, yang bukan versi yang disukai. Halaman asli harus dibiarkan sendiri: tidak ada kanonik yang boleh ditampilkan di sana! Itu sebabnya saya masih membantai.

Levente
sumber