Query bài viết theo ngôn ngữ hiện tại trong WPML

Nếu bạn sử dụng wpml để làm dự án thường xuyên thì có thể bạn sẽ quan tâm bài viết Query bài viết theo ngôn ngữ hiện tại trong WPML của mình.
Hiện tại mình đang nhận 01 dự án cũng đơn giản thôi, dạng show thông tin bài viết này nọ nhưng sử dụng nhiều ngôn ngữ và nó lại có tính năng bộ lọc chọn này chọn kia như bất động sản ấy. Đa ngôn ngữ thì mình sử dụng bộ WPML bản quyền giá 200k tại chợ mua bán themes.

 

Bộ này thì được download Full AddOn. Nhưng hiện tại thì AddOns Management thấy không sử dụng được cho bản shared mà chúng ta chỉ có thể sử dụng được các Plugins khác trừ nó. Nhưng không sao cả, minhg thấy vẫn okay khi sử dụng cho website đa ngôn ngữ. Chỉ là không được translate tự động để tăng tốc dịch bài thôi.

Nói chung WPML đáng đầu tư để làm site đa ngôn ngữ, hiện mình có key và update lifetime cho các bạn sử dụng nên cứ vô tư mà mua về sử dụng nhé.


Thôi quay lại vấn đề chính các bạn nhé.

Query bài viết trong WPML

Trước giờ mình làm cho 1 ngôn ngữ thì bộ lọc hoạt động bình thường. Nhưng nay sài tới 2 và nhiều hơn 2 ngôn ngữ thì thấy có vài điều vớ vẫn phát sinh, đó là query ở ngôn ngữ đầu tiên thì thấy nó đúng, nhưng query ở ngôn ngữ thứ 2 thì nó vẫn hiển thị bài viết theo ngôn ngữ đầu tiên luôn.

Đây là GUI của bộ lọc

Query bài viết theo ngôn ngữ hiện tại wpml
Query bài viết dựa trêb ngôn ngữ đang sử dụng trong wpml

Nếu bạn cảm thấy bài viết này chưa hiểu WP_Query là gì thì mình khuyên nên lên google tìm hiểu về từ khóa “cách sử dụng wp_query” kết hợp với bài tổng hợp các thông số về WP_Query

 

 

Bộ lọc ở đây mình sử dụng AJAX, với LANG là define biến get_bloginfo(‘language’) trong functions.php các bạn nhé.

Query bài viết theo ngôn ngữ hiện tại wpml
Query bài viết sử dụng wpml và cách khắc phục
define('LANG',get_bloginfo('language'));

 

Query bài viết theo ngôn ngữ hiện tại wpml
Query bài viết theo ngôn ngữ hiện tại wpml

ý nghĩa của việc truyền currentLang qua function đó là setup wp_query nhận các giá trị bài viết theo LANG mà website đang hiển thị.
Nếu các bạn sử dụng 1 ngôn ngữ thì cứ mạnh dạn xóa luôn dòng mình tô nhé. Không vấn đề gì cả.

Còn bên dưới đây là dữ liệu của hàm loadPostBySalary

Query bài viết theo ngôn ngữ hiện tại wpml
Query bài viết theo ngôn ngữ hiện tại wpml

Mình sẽ get giá trị currentLang qua hàm loadPostBySalary bằng code bên trên

và xử lý bằng các hàm của WPML. switch_lang có ý nghĩa là setup cho wp_query nhận giá trị post của ngôn ngữ đó. Vấn đề chính là ở code bên trên. Chúng ta chỉ cần giúp hàm wp_query của bạn hiểu được phải query posts dựa trên ngôn ngữ nào là Done công việc query bài viết theo ngôn ngữ hiện tại.

Và dưới đây là code query

Query bài viết theo ngôn ngữ hiện tại wpml
Query bài viết TRONG WPML

Chúc các bạn gặp phải tình huống giống mình xử lý được tình huống nhanh gọn lẹ nhá.

 

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *