Làm cách nào để sắp xếp lại các thẻ meta?


4

Theo yêu cầu của khách hàng, tôi cần thay đổi thứ tự các thẻ meta. Các yêu cầu cũng là để ẩn một số thẻ meta.

Thứ tự yêu cầu tương tự như sau.

<Title>
<Description>
<keywords>

Có một mô-đun để đạt được điều này một cách dễ dàng, tôi có cần chỉnh sửa các tệp của mô-đun Metatag không?


1
Bạn có thể nói TẠI SAO khách hàng muốn điều đó? Có thể có một mô-đun đáp ứng nhu cầu của anh ta, nhưng nếu vậy, nó không thể được googled đơn giản dưới "sắp xếp lại đầu".
Mołot

1
Sửa lỗi cho tôi nếu tôi sai, nhưng tôi không thấy mục đích của việc đặt hàng lại như vậy. Nếu đó là các yếu tố trong Cơ thể thì đó là cho mục đích SEO, nhưng dù sao cũng là một câu hỏi thú vị. Nếu bạn có thể cho chúng tôi biết "tại sao" thì điều đó còn thú vị hơn nữa.
Beebee

Hoàn toàn là vì mục đích SEO, anh ta cần loại bỏ chúng chỉ để lấy dữ liệu trang web trên trang web, điều đó sẽ dễ dàng cho google thu thập dữ liệu.

1
Nguồn nào tuyên bố rằng thứ tự của các thẻ meta có liên quan đến SEO? Mặc dù không có lý do để không tự trả lời câu hỏi, nhưng nó đủ hợp lệ, việc thực hiện ở đây có vẻ như là một sự lãng phí lớn thời gian. Như làm-những gì-khách hàng-nói thường là như vậy.
Letharion

Câu trả lời:


10

Để thay đổi thứ tự của các thẻ meta cụ thể, hook_html_head_alter()việc triển khai trong tệp template.php của chủ đề sẽ là lựa chọn tốt nhất của bạn:

function MYTHEME_html_head_alter(&$head_elements) {
  // Combined with the devel module this line will tell you what elements you have to work with
  dpm($head_elements);

  // Any you can just alter the weight like this
  $head_elements['module:key']['#weight'] = -1000;
  $head_elements['another_module:another_key']['#weight'] = -999;
}

Nó chỉ có giá trị cho 7 trở lên.
Mołot

@ Mołot Yep, như OP yêu cầu ...
Clive

1
Lỗi của tôi - nó không được gắn thẻ 7 và bằng cách nào đó tôi đã bỏ lỡ nó trong tiêu đề. Dù bằng cách nào, câu trả lời của bạn không cho biết làm thế nào để nâng <title> lên đầu, vì vậy tôi sẽ để lại vị trí của mình.
Mołot

@Clive cảm ơn vì câu trả lời, bạn có thể vui lòng giải thích làm thế nào tôi có thể nhận được "['module: key']".

Bạn cần kiểm tra $head_elementsmảng để xem những gì trong đó ... dpm()phương pháp thông qua mô-đun Devel sẽ dễ dàng nhất như được ghi chú trong các nhận xét
Clive

6

Các yếu tố đầu HTML được xác định ở 2 nơi.

Đầu tiên, dễ truy cập nhất, là chủ đề của bạn html.tpl.php.

Trong phần Chuyên đề có liên quan trông như thế:

<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<?php print $head; ?>
<title><?php print $head_title; ?></title>
<?php print $styles; ?>
<?php print $scripts; ?>
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
</head>

Vì vậy, ở đây bạn có thể đặt tiêu đề trước các tiêu đề khác. Thật là khôn ngoan khi để các phần CSS và JS ở cuối, theo thứ tự được chỉ định.

Nếu bạn cảm thấy cần phải sắp xếp lại những gì trong $headbiến,

nó trở nên khó khăn hơn Biến này được tạo bởi lõi Drupal, và sau đó được thay đổi bởi các mô-đun và chủ đề. Điều tốt, chủ đề của bạn sẽ là người truy cập cuối cùng.

Đối với Drupal 6, trong template.phpđịnh nghĩa THEMENAME__pre process_page (& $ biến) và thay đổi hoặc sắp xếp lại $variables['header']theo ý muốn. Hãy nhớ rằng nó có thể phá vỡ các mô-đun khác, đặc biệt là nếu bạn sẽ loại bỏ mọi thứ. Sắp xếp lại là tương đối an toàn, thêm thường là an toàn, loại bỏ là rủi ro.

Đối với Drupal 7 xem câu trả lời của Clive . THEMENAME__pre process_page (& $ biến) vẫn hoạt động, nhưng 7 cung cấp giải pháp trực tiếp hơn cho vấn đề của bạn.

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.