Frontend và backend ngôn ngữ khác nhau

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

Frontend và backend là hai định nghĩa ý chỉ giao diện người dùng bên trong bảng điều khiển admin và giao diện bên ngoài của blog WordPress. Nếu bạn yêu thích bảng điều khiển admin với ngôn ngữ mặc định là Tiếng Anh, còn giao diện bên ngoài bạn sử dụng ngôn ngữ là Tiếng Việt thì bài viết này có thể giúp được bạn.

function sb_theme_frontend_vietnamese($locale) {
    if(!is_admin()) {
        $locale = 'vi';
        return $locale;
    }
}
add_filter('locale', 'sb_theme_frontend_vietnamese', 1, 1);

Bạn mở tập tin functions.php của giao diện lên và thêm vào hàm cùng với filter như trên. Bộ lọc này sẽ kiểm tra và trả về ngôn ngữ là Tiếng Việt khi người dùng ở ngoài frontend.

Đối với WordPress phiên bản 4.7 trở về sau thì bạn có thể sử dụng hàm switch_to_locale để thực hiện việc chuyển đổi giữa các loại ngôn ngữ, mình viết một ví dụ đoạn code bên dưới cho các bạn tham khảo nếu chưa biết.

function hocwp_theme_custom_switch_locale() {
	if ( ! function_exists( 'request_filesystem_credentials' ) ) {
		require_once( ABSPATH . 'wp-admin/includes/file.php' );
	}
	if ( ! function_exists( 'wp_can_install_language_pack' ) ) {
		require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
	}
	if ( wp_can_install_language_pack() ) {
		$locale    = 'as';
		$languages = get_available_languages();
		$tr_name   = 'hocwp_reload_page';
		if ( ! is_array( $languages ) || ! in_array( $locale, $languages ) ) {
			$language = wp_download_language_pack( $locale );
			set_transient( $tr_name, 1 );
		} else {
			$language = true;
		}

		if ( $language && function_exists( 'switch_to_locale' ) ) {
			switch_to_locale( $locale );
			if ( false !== get_transient( $tr_name ) ) {
				hocwp_reload_page();
				delete_transient( $tr_name );
			}
		}
	}
}

add_action( 'init', 'hocwp_theme_custom_switch_locale', 99 );

Hàm bên trên có nghĩa là hệ thống luôn sử dụng ngôn ngữ thiết lập sẵn đầu vào, ở đây mình đang test thử với ngôn ngữ là as, bạn cần chỉnh sửa lại chút ít cho phù hợp với đoạn code của bạn nhé.

Kể từ phiên bản WordPress 4.7 thì bạn hoàn toàn có thể chọn ngôn ngữ khác nhau cho admin và bên ngoài WordPress. Để làm được điều này thì bạn đăng nhập vào admin, tiếp đến bạn vào menu Settings → General → Site Language, bạn chọn ngôn ngữ cho toàn bộ trang.

Tiếp đến bạn vào menu Users → Your Profile → Language, chọn lại ngôn ngữ sử dụng bên trong admin cho tài khoản của bạn. Với chức năng này thì ngôn ngữ bên ngoài và bên trong admin sẽ khác nhau. Nếu bạn viết blog Tiếng Việt thì bạn chọn ngôn ngữ toàn bộ trang là Tiếng Việt và chọn ngôn ngữ trong profile của bạn là English cho dễ đọc nhé. Đa số các hướng dẫn có trên mạng đều dựa theo bản Tiếng Anh nên nhiều khi bạn đối chiếu không trùng khớp, dẫn đến việc tiếp cận kiến thức khó khăn hơn.