it-swarm-vi.com

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

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ỏ 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?

17
user332

Đ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 rằng 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.

11
Berdir

Tôi sử dụng hàm 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>';
    // */
}
5
Fleshgrinder

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 tắc đượ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.

4
Levente