1. Một số hằng số thường dùng trong plugin WPML:

vd: Ngôn ngữ hiện tại là ngôn ngữ tiếng Việt thì khi bạn in các hằng số sau ra sẽ có được kết quả

ICL_LANGUAGE_CODE: => vi

ICL_LANGUAGE_NAME: => Việt Nam

Xem thêm các hằng số khác: https://wpml.org/documentation/support/wpml-coding-api/wpml-constants/

2. Chuyển ngôn ngữ trong function WordPress: ứng dụng khi sử dụng ajax ta cần truyền ngôn ngữ cần lấy khi thực hiện query

global $sitepress;        
$language_code = "vi";
$original_lang = ICL_LANGUAGE_CODE;
$sitepress->switch_lang($language_code);

3. Cách lấy bản dịch của ngôn ngữ hiện tại trong WPML

  • Lấy tất cả bản dịch
$post_id = 47;
  
$type = apply_filters( 'wpml_element_type', get_post_type( $post_id ) );
$trid = apply_filters( 'wpml_element_trid', false, $post_id, $type );
  
$translations = apply_filters( 'wpml_get_element_translations', array(), $trid, $type );
foreach ( $translations as $lang => $translation ) {
    var_dump( $translation );
}

Output sẽ trả về danh sách các bản dịch,

class stdClass#4886 (8) {
  public $translation_id => string(2) "60"
  public $language_code => string(2) "en"
  public $element_id => string(2) "47"
  public $source_language_code => NULL
  public $element_type => string(12) "post_product"
  public $original => string(1) "1"
  public $post_title => string(13) "Example  Product"
  public $post_status => string(7) "publish"
}
  
class stdClass#4877 (8) {
  public $translation_id => string(2) "61"
  public $language_code => string(2) "fr"
  public $element_id => string(2) "48"
  public $source_language_code => string(2) "en"
  public $element_type => string(12) "post_product"
  public $original => string(1) "0"
  public $post_title => string(15) "Exemple de produit"
  public $post_status => string(7) "publish"
}

Trong vd trên: thì website có 3 ngôn ngữ: Vi, En, Fr thì kết quả trả ra là 2 ngôn ngữ còn lại là En và Fr

  • Lấy bản dịch theo ngôn ngữ chỉ định
// will return the post ID in the current language for post ID 27
echo apply_filters( 'wpml_object_id', 27, 'post' );
  
// will return the category ID in the current language for category ID 4. If the translation is missing it will return the original (here: category ID 4)
echo apply_filters( 'wpml_object_id', 4, 'category', TRUE  );
  
// will return the English attachment ID for attachment ID 27. If the translation is missing it will return NULL
echo apply_filters( 'wpml_object_id', 27, 'attachment', FALSE, 'en' );

4. Câu trúc bảng trong plugin WPML

Chi tiết: https://wpml.org/documentation/support/wpml-tables/

Bài viết liên quan

post-no-image

Add the Meta Box Upload Multiple Images and multiple metabox

post-no-image

Add the Meta Box Repeat

post-no-image

Kỹ thuật debounce trong javascript – Trì hoãn nhập từ khóa trong ô input

post-no-image

Thêm VS Code snippets

post-no-image

Query only seach by title

post-no-image

Hướng dẫn tạo form có validate, upload file nhiều bước và xử lý ajax