Làm thế nào để loại bỏ các thẻ meta nhất định?


18

Làm cách nào tôi có thể xóa các thẻ này khỏi các trang của mình trong Drupal 7?

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

Cập nhật : Tôi có mã cho template.php, loại bỏ các trình tạo và thẻ chuẩn.

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

Bất cứ ai cũng có thể thêm một cái gì đó để loại bỏ các thẻ liên kết ngắn?


1
Tất cả mọi thứ có vẻ tốt, nhưng tại sao đưa kinh điển ra? Điều này thực sự hữu ích.

Câu trả lời:


11

Điều này được hiển thị trong html.tpl.php trong biến $ head. $ head được thêm vào các biến trong template_ process_html bằng cách sử dụng drupal_get_html_head () . Trong hàm đó, bạn có thể thấy hook_html_head_alter () được gọi.

Có bạn có thể loại bỏ những.

Tuy nhiên, lưu ý rằng các liên kết này có thể quan trọng đối với SEO, để tránh việc công cụ tìm kiếm nghĩ rằng bạn có nội dung trùng lặp trên trang web của mình, ví dụ như một nút có sẵn thông qua nút / nid và bí danh.


hmm tôi tìm thấy nó nhưng vẫn không thể xóa nó :) Tôi nghĩ rằng tôi nên học php sớm :) Tôi tìm mã có thể được thêm vào template.php (trong mẫu) và mã loại bỏ dòng "Trình tạo". hàm program_html_head_alter (& $ head_elements) {unset ($ head_elements ['system_meta_generator']); }

nhưng tôi vẫn có vấn đề với 2 dòng bổ sung mà tôi cần phải loại bỏ. Sẽ không tốt cho seo nếu bạn có trang chủ tùy chỉnh và url cung cấp chính tắc không dành cho tên miền chính chỉ dành cho trang con ... giống với shortlink - tại sao ai đó có thể thấy bài viết đó có thêm địa chỉ với /node/...st ngu ý tưởng để thêm những dòng này đến d7

Vậy nếu tôi có bản cài đặt D7 mới với URL và pathauto sạch, liên kết URL chuẩn sẽ tự động được đặt?
Andy

Nên, vâng.
Berdir

5

Tôi sử dụng chức năng sau trong tệp template.php của mình:

/**
 * 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>';
    // */
}

Điều này không hiệu quả với tôi - 'metatag_canonical'metatag_shortlinkkhông tồn tại dưới dạng chỉ mục của $head_elements(điều này nằm trong Drupal 7). Câu trả lời được đưa ra bởi @Levente hoạt động tốt.

4

Tôi đã giải quyết shortlink quá, modyfying mã của bạn.

Ai đó có thể dọn dẹp nó đúng cách, bởi vì tôi không biết làm thế nào để đặt nó đúng cách, và liệu nó có tác dụng phụ theo cách này hay không. Nó làm cho các liên kết không mong muốn biến mất khỏi đầu, mặc dù.

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

Vâng, đó là một thái độ của người bán thịt đối với các liên kết kinh điển, nhưng cho đến khi không có sự hờn dỗi nào tốt hơn, điều này vẫn tốt hơn.

RATNG TẠI SAO: bạn cần các liên kết chính được hiển thị CHỈ trên các trang trùng lặp, những trang không phải là phiên bản ưa thích. Các trang gốc nên được để lại một mình: không có kinh điển nào được hiển thị ở đó! Đó là lý do tại sao tôi vẫn bán thịt xung quanh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.