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ách sửa lỗi link của wordpress có các ký tự Tiếng Việt bằng code
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 đó:
1 |
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.
Cách sửa lỗi link của wordpress có các ký tự Tiếng Việt bằng Plugin
Để 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 .
Chúc các bạn luon vui vẻ và yêu nghề code 🙂