Lỗi cách chữ tiếng việt có dấu trong wordpress năm 2024

Trong bài viết này mình sẽ trình bày cách sửa lỗi link của wordpress có các ký tự Tiếng Việt, thực ra cái này mình không biết có phải là lỗi không nhưng mà mình không thích khi thấy url của website có các ký tự đặc biệt có dấu của Tiếng Việt như ả ã ạ ….. Một ví dụ của Link có chữ cái Tiếng Việt là:

  • Link trên url: https://codfe.com/bang-gia-day-cap-ruọt-dịnh-dạng/
  • Link trong view code: https://codfe.com/2022/testcode/bang-gia-day-cap-ruo%cc%a3t-di%cc%a3nh-da%cc%a3ng/

Lỗi này thường do dùng bộ font và mã unicode của Unikey nhập liệu sinh ra, còn bình thường nếu dùng bộ gõ và font Tiếng Việt mặt định của Window 10 thì mình thấy không bị.

Các bạn thêm đoạn code sau vào function.php nhé

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

add_action('wp_insert_post_data', __NAMESPACE__ . 'processPermalink');

/**

* codfe.com - Cách fix lỗi tiếng việt trong url wordpress

* Processes the permalink so we can remove any characters that may cause a problem when communicating

* with the API.

*

* @param array $data The array of information about the post.

* @return array $data The data without the malformed information in the post name for the URL.

*/

function processPermalink($data){

if (!in_array($data['post_status'], array('draft', 'pending', 'auto-draft'))) {

$search \= [

'a%cc%89',

'a%cc%a3'];

$replace \= [

'a',

'a'];

$data['post_name'] \= str_replace($search, $replace, $data['post_name']); **/

}

return $data;

}

Giải thích: Trong đoạn code trên mình đã tìm và thay thế các ký tự đặc biệt thành các ký tự assci trong đó:

add_action('wp_insert_post_data', __NAMESPACE__ . 'processPermalink');

Khi tạo bài viết mới thì gọi processPermalink để kiểm tra url.

Trong processPermalink chúng ta sẽ dùng str_replace để tìm và thay thế các ký tự hoặc đoạn đặc biệt nào đó mình muốn thay. Trong ví dụ trên mình chỉ thay 2 ký tự là ả và ạ (tương ứng với dòng text a%cc%89 và a%cc%a3 trên link) các bạn bổ xung đầy đủ để dùng nhé. Có thể post lên đây bằng comment để cùng chia sẽ với mọi người.

Để bỏ chữ có dấu tiếng việt trong url thì các bạn cần sử dụng tới plugin: Wp Vietnamese URL. Các bạn có thể tải trực tiếp tại trang chủ wordpress.org hoặc tải tại đây: Wp Vietnamese URL .

Bạn chỉ cần tải về và cài đặt plugin mà mình đã viết và đính kèm trong bài viết này, sau khi cài đặt bạn có thể dễ dàng nhận ra font chữ của trình soạn thảo của WordPress đã thay đổi chuẩn xác hơn cho Tiếng Việt.

Cách 2 sử dụng code trong theme của bạn

Đầu tiên bạn tạo cho hình một file trong thư mục theme mà bạn đang sử dụng, đặt tên file là font-editor.css, sau đó sao chép đoạn code bên dưới dán vào file đó rồi lưu lại.

body { font-family: Arial,Verdana,Helvetica,sans-serif !important ; }

Tiếp theo bạn tiếp tục sao chép đoạn code bên dưới và dán vào file function.php trong thư mục theme mà bạn đang sử dụng là xong.

// thay doi font cho trinh soan thao function caodem_changer_font_tinymce() { add_editor_style( array( 'font-editor.css' ) ); } add_action( 'after_setup_theme', 'caodem_changer_font_tinymce' );

Cách 3 thay đổi font chữ trong thư mục góc của trình soạn thảo WordPress

Cách này thì mình không khuyến khích các bạn làm theo, vì cơ bản cách này nó sẽ can thiệp vào file hệ thống của WordPress, tuy không phải nguy hiểm gì cả, nhưng nó có thể không hoạt động nếu bạn cập nhật phiên bản mới, hoặc chuyển host khác… Mình chỉ cho thêm cách này vào để bạn có hiểu được nguồn góc của css làm lỗi font chữ Tiếng Việt trong trình soạn thảo của WordPress mà thôi.