WPML
Trạng thái
Đã giải quyết
Được báo cáo cho
WPML Multilingual CMS 3.3.6
Đã giải quyết trong
3.3.6

Tổng quan về lỗi

Các thẻ meta hreflang có thể bị thiếu trong phần header của trang. Điều này xảy ra kể từ phiên bản WPML 3.3.6, khi kết hợp với các giao diện hoặc plugin tải WPML quá sớm.

WPML cần bao gồm các thẻ <link hreflang=”lang”> trong phần header trên trang web của bạn. Các thẻ này bị thiếu ở một số trang web sử dụng WPML 3.3.6 khi kết hợp với một số plugin hoặc giao diện. Vấn đề xảy ra do WPML đang cố gắng xuất các thẻ này sớm trong phần header, nhưng các plugin khác lại gây ra tình trạng tương tranh, kích hoạt WPML quá sớm. Bạn có thể nhận được email từ công cụ Google Webmaster với nội dung “Incorrect hreflang implementation”.

Miêu tả đầy đủ về chức năng này có trong nguyên tắc nội dung của Google dành cho các URL ngôn ngữ và khu vực.

Giải pháp tạm thời

Để khắc phục sự cố này trong WPML 3.3.6:


  1. Mở tệp sitepress-multilingual-cms/sitepress.class.php

  2. Cuộn xuống cuối tệp này, nơi bạn sẽ thấy nội dung sau: Ảnh chụp màn hình 2016-02-24 lúc 10.47.11

  3. Thay thế dòng này: add_action( 'wp_head', array( $this, 'head_langs' ), 1 );

  4. Bằng: add_action( 'wp_head', array( $this, 'head_langs' ) );

  5. Phiên bản cuối cùng của mã này phải trông như sau: Ảnh chụp màn hình 2016-02-24 lúc 11.00.04

  6. Lưu tệp

Trong phiên bản tiếp theo của WPML, bản sửa lỗi tương tự sẽ được áp dụng.

Mã ở bước #3 nhằm mục đích in các thẻ meta hreflang càng sớm càng tốt, nhưng điều này gây ra sự cố với một số giao diện và plugin.

Nếu bạn vẫn muốn in các thẻ meta hreflang càng sớm càng tốt, bạn có thể áp dụng một giải pháp phức tạp hơn. Thêm mã này vào tệp functions.php trong giao diện của bạn:

function my_handle_head_hreflang() {
   global $sitepress;

   $settings = $sitepress->get_settings();
   if ( $settings[ 'seo' ][ 'head_langs' ] ) {
      remove_action( 'wp_head', array( $sitepress, 'head_langs' ) );
      add_action( 'wp_head', array( $this, 'head_langs' ), 1 );
   }
}

add_action('wpml_loaded', 'my_handle_head_hreflang');

Tất cả các lỗi đã ghi nhận →