Làm cách nào để thêm thuộc tính Rel = của tác giả vào ứng dụng Drupal 7?


7

Trong thế giới mới dũng cảm của Google, việc tích hợp tuyệt vời với Google+ là bắt buộc đối với tất cả các quản trị viên web muốn có được lưu lượng truy cập nhiều nhất có thể. Nếu việc thêm rel="publisher"thuộc tính vào trang web được thực hiện bằng mô-đun Meta Tags, có vẻ như không có cách chính thức nào để hỗ trợ thuộc tính rel = "tác giả". Đối với những người bạn không biết về tôi đang nói về, hãy đọc bài viết này từ Google: Thông tin về tác giả trong kết quả tìm kiếm

Rõ ràng sự hỗ trợ sẽ được đưa vào Drupal 8. Tôi đã thấy một số cuộc thảo luận về việc thêm phần này vào lõi 8 của Drupal.

Nhưng làm thế nào để thực hiện điều này trong Drupal 7?

Tôi đang yêu cầu điều này như một người mới trong việc tùy chỉnh bên trong của Drupal. Vì vậy, nếu bạn có một số ý tưởng tốt, xin hãy ghi nhớ điều này.

Đánh giá cao ý tưởng của bạn.


Bạn có muốn điều này được thêm vào phần đầu của trang dưới dạng thẻ meta không?
Madis

Đúng. Đó là cách nó nên được thực hiện, theo Google. Đối với mỗi bài viết, bạn chèn liên kết tới hồ sơ Google+ của tác giả đó.
Công ty Geek

Theo đánh dấu tác giả của Google không còn được hỗ trợ trong tìm kiếm trên web kể từ tháng 8 năm 2014. Xem thêm tại đây support.google.com.vn/webmastersals/6083347?hl=vi và tại đây plus.google.com/+JohnMueller/posts/HZf3KDP1Dm8
TheodorosPloumis

Câu trả lời:


8

Thuộc tính rel = tác giả hiện được hỗ trợ bởi phiên bản dev của mô-đun Drupal 7 Metatags.

Sau khi cài đặt mô-đun thẻ meta ( http://drupal.org/project/metatag ), hãy truy cập admin / config / search / metatags và chỉnh sửa trang đầu hoặc một trong các trang nút. Trong 'Nâng cao', bạn sẽ thấy các trường tác giả và nhà xuất bản nơi bạn có thể nhập URL trang google + của mình. Trên ảnh chụp màn hình sau, tôi đã đánh dấu những nơi bạn cần thay đổi cấu hình bằng màu hồng.

Trang cấu hình trang chủ Metatags:

Đây là ảnh chụp màn hình của tôi - cấu hình được đánh dấu màu hồng


Cảm ơn bạn đã chỉ ra điều này, cách ít phức tạp hơn để tạo mã thông báo và có người nhập nó theo cách này.
Stephen P.

5

Sử dụng các ý tưởng từ rdf_preprocess_node()chức năng mà Dave Hall liên kết, bạn có thể thực hiện theo cách này (mã đi vào tệp template.php của chủ đề của bạn):

function mytheme_preprocess_node(&$variables) {
  if ($variables['page']) {
    $account = user_load($variables['uid']);
    $title = $account->name;

    $author_info = array(
      '#tag' => 'link',
      '#attributes' => array(
        'rel' => 'author',
        'href' => 'http://localhost',
        'title' => $title,
      ),
    );

    drupal_add_html_head($author_info, 'author');
  }
}

Điều này thêm liên kết cần thiết vào phần đầu của các trang nút đầy đủ. Tôi đã sử dụng id của tác giả nút để lấy dữ liệu người dùng cần thiết. Bạn có thể muốn thêm một trường trang web cho người dùng mà bạn có thể sử dụng ở đây để có được một giải pháp hoàn chỉnh.


Vì vậy, tôi nên thêm một trường cho mỗi người dùng nơi lưu trữ thông tin liên kết Tiểu sử trên Google+? Ngoài ra, xin lỗi vì sự thiếu hiểu biết của tôi ở đây - có một tên cụ thể tôi nên đặt cho lĩnh vực đó không?
Công ty Geek

@Cor mergGeek Vâng Tôi nghĩ rằng đó sẽ là một cách tiếp cận tốt và tên trường không thực sự quan trọng. Các PROFILE2 mô-đun có vẻ là phù hợp cho việc bổ sung lĩnh vực. Tôi có thể tắt ở đây, nhưng bạn có thể sử dụng $page = $account->field_myfieldname['und'][0]['value'];để lấy giá trị sau này trong mã để thêm nó vào thuộc tính 'href'.
Madis

Thực sự không cần mô-đun Profile2 trong Drupal 7 vì hỗ trợ trường cho người dùng đã đi kèm với lõi (admin / config / people / account / field).
Madis

Đây là một cách tiếp cận tuyệt vời. Điều duy nhất tôi thay đổi là sử dụng if ($node = menu_get_object()) { if($node->type == "blog") { ...để kiểm tra loại nội dung blog của mình. Cảm ơn! Tôi cũng thích ý tưởng thêm một trường cho URL G + nếu có nhiều hơn một người dùng trên một trang web, theo cách đó nó hoàn toàn năng động.
Daniel Englander


1

Tôi biết tôi đến bữa tiệc muộn, nhưng tôi đang trả lời điều này cho những người tìm đến trang này để tìm giải pháp.

Hiện tại đã có một mô-đun tác giả Google .


0
function themename_preprocess_username(&$vars) {
  // Username is linked, use the link_attributes to inject the rel attribute
  if (isset($vars['link_path'])) {
    $vars['link_attributes']['rel'][] = 'author';
  }
  // Username is NOT linked, use the attributes_array to inject the rel attribute
  else {
    $vars['attributes_array']['rel'][] = 'author';
  }
}
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.