Sửa lỗi plugin qTranslate trên WordPress 3.9

Cập nhật lần cuối vào

Khi bạn nâng cấp blog lên phiên bản WordPress 3.9 nhưng bạn không thể nhìn thấy được nội dung của trang nữa mà trên màn hình chỉ hiện một màu trắng xóa, đặc biệt hơn blog của bạn đang sử dụng plugin qTranslate đi kèm thì bài viết này rất có thể sẽ giúp ích được cho bạn.

qTranslate là một trong những plugin cho WordPress làm blog đa ngôn ngữ tốt nhất hiện nay, tuy nhiên plugin này không phát triển phiên bản phù hợp cho WordPress phiên bản mới nhất, đây quả thật là một điều đáng tiếc đối với các bạn muốn làm nội dung của blog hiển thị trên nhiều ngôn ngữ khác nhau.

Nếu bạn đang dùng plugin qTranslate và bạn đã nâng cấp trang của mình lên WordPress 3.9 hoặc các phiên bản cao hơn phiên bản WordPress được qTranslate chấp nhận thì rất có thể trang của bạn sẽ gặp phải lỗi.

Sử dụng plugin qTranslate để làm blog đa ngôn ngữ

Chỉnh sửa trực tiếp trong phần code của plugin là việc làm không tốt và không khuyến khích các bạn thực hiện, nhưng để đạt được mục đích của mình thì bản thân các bạn nhiều khi cũng phải chịu khó một chút.

Đầu tiên bạn mở tập tin qtranslate_core.php của plugin này lên và tìm tới hàm qtrans_strftime:

/* BEGIN DATE TIME FUNCTIONS */

function qtrans_strftime($format, $date, $default = '', $before = '', $after = '') {
	// don't do anything if format is not given
	if($format=='') return $default;
	// add date suffix ability (%q) to strftime
	$day = intval(ltrim(strftime("%d",$date),'0'));
	$search = array();
	$replace = array();
	
	// date S
	$search[] = '/(([^%])%q|^%q)/';
	if($day==1||$day==21||$day==31) { 
		$replace[] = '$2st';
	} elseif($day==2||$day==22) {
		$replace[] = '$2nd';
	} elseif($day==3||$day==23) {
		$replace[] = '$2rd';
	} else {
		$replace[] = '$2th';
	}
	
	$search[] = '/(([^%])%E|^%E)/'; $replace[] = '${2}'.$day; // date j
	$search[] = '/(([^%])%f|^%f)/'; $replace[] = '${2}'.date('w',$date); // date w
	$search[] = '/(([^%])%F|^%F)/'; $replace[] = '${2}'.date('z',$date); // date z
	$search[] = '/(([^%])%i|^%i)/'; $replace[] = '${2}'.date('n',$date); // date i
	$search[] = '/(([^%])%J|^%J)/'; $replace[] = '${2}'.date('t',$date); // date t
	$search[] = '/(([^%])%k|^%k)/'; $replace[] = '${2}'.date('L',$date); // date L
	$search[] = '/(([^%])%K|^%K)/'; $replace[] = '${2}'.date('B',$date); // date B
	$search[] = '/(([^%])%l|^%l)/'; $replace[] = '${2}'.date('g',$date); // date g
	$search[] = '/(([^%])%L|^%L)/'; $replace[] = '${2}'.date('G',$date); // date G
	$search[] = '/(([^%])%N|^%N)/'; $replace[] = '${2}'.date('u',$date); // date u
	$search[] = '/(([^%])%Q|^%Q)/'; $replace[] = '${2}'.date('e',$date); // date e
	$search[] = '/(([^%])%o|^%o)/'; $replace[] = '${2}'.date('I',$date); // date I
	$search[] = '/(([^%])%O|^%O)/'; $replace[] = '${2}'.date('O',$date); // date O
	$search[] = '/(([^%])%s|^%s)/'; $replace[] = '${2}'.date('P',$date); // date P
	$search[] = '/(([^%])%v|^%v)/'; $replace[] = '${2}'.date('T',$date); // date T
	$search[] = '/(([^%])%1|^%1)/'; $replace[] = '${2}'.date('Z',$date); // date Z
	$search[] = '/(([^%])%2|^%2)/'; $replace[] = '${2}'.date('c',$date); // date c
	$search[] = '/(([^%])%3|^%3)/'; $replace[] = '${2}'.date('r',$date); // date r
	$search[] = '/(([^%])%4|^%4)/'; $replace[] = '${2}'.$date; // date U
	$format = preg_replace($search,$replace,$format);
	return $before.strftime($format, $date).$after;
}

Bạn chỉnh sửa phần giá trị trả về, xóa đi biến $before ở phía trước và sau đó lưu lại. Cụ thể là bạn sửa đoạn code sau:

return $before.strftime($format, $date).$after;

Thành đoạn code sau:

return strftime($format, $date).$after;

Nếu chính sửa trực tiếp trong chức năng Editor của plugin thì chỉ cần lưu lại là xong, nếu tải về trên máy thình lưu lại tập tin và upload đè lên tập tin cũ của plugin nhé bạn. Chúc bạn thành công.

Theo dõi
Thông báo của
guest

6 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
dang trần manh
dang trần manh
9 năm trước

hix mình làm theo hướng dẫn của bạn xong báo lỗi luôn sửa lại cũng không được. mong ban xem qua lỗi và hướng dẫn mình với

skype của mình: dangtran.manh

rất mong sự giúp đỡ của bạn
thank you

Long
Long
9 năm trước

Cho mình hỏi mình sử dụng qTranslate để làm 2 ngôn ngữ tiếng Nhật và tiếng Việt trang web mình có chức năng search nhưng khi mình search ở thì nội dung nó ra trang tiếng Nhật không ra tiếng Việt
Mình có cần phải chỉnh gì không để khi search ở trang ngôn ngữ nào thì kết quả trả về ngôn ngữ đó ???

Chung Nguyễn
Chung Nguyễn
3 năm trước

Chào Ad mình cài QTRANSLATE X lên wordpress xài theme flatsome bị lỗi phần block mình gắn ở footer khi click vào chọn tiếng việt hay tiếng anh web hiện ra cả 2 bản tiếng việt và tiếng anh lun bạn biết cách fix lỗi này ko.
Bạn giúp mình với.
Thanks.

Dat Tien
3 năm trước

Nice