Jul
21

Xử lý dấu tiếng Việt trong URL WordPress

Theo mặc định bình thường WordPress rất “ngu” phần Tiếng Việt. Do đó, Permalink được tạo ra thường chứa các kí tự tiếng Việt kiểu nửa ta nữa tây rất khó chịu. Đã vậy nó còn mã hóa thành vào chục cái dấu % nữa chứ. Nhân vừa tiến hành việc này tôi gửi đến cái hướng dẫn sửa liên kết bài viết (Permalink) trong wordpress để nó hiểu tiếng Việt của ta tốt hơn. Tôi hi vọng bài này giúp được những bạn xài WordPress bớt đi chút khó khăn khi cứ phải ngồi chỉnh sửa cái Permalink mỗi khi viết bài.Lục tung cái code của WordPress (hiện www.nhanweb.com đang sử dụng phiên bản 2.8.2) tôi tìm được cái hàm sanitize_title_with_dashes() nằm trong file wp-includes/formatting.php . Đây là file write lại cái Permalink của WordPress. Cũng chính vì ở đây việc xử lý tiếng Việt còn hạn chế nên cái Permalink của chúng ta nhìn không đẹp mặt lắm. Tôi thử  sửa cái hàm đó lại như  sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function sanitize_title_with_dashes($title) {
$url_pattern = array('`&(amp;|#)?[a-z0-9]+;`i', '`[^a-z0-9]`i');
 
$title = htmlentities($title, ENT_COMPAT, 'utf-8');
$title = preg_replace( '`&([a-z]+)(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i', "\\1", $title );
$title = preg_replace('`\[.*\]`U','',$title);
$title = strtolower(trim($title, '-'));
 
$title = preg_replace("/(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)/", 'a', $title);
$title = preg_replace("/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/", 'e', $title);
$title = preg_replace("/(ì|í|ị|ỉ|ĩ)/", 'i', $title);
$title = preg_replace("/(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)/", 'o', $title);
$title = preg_replace("/(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/", 'u', $title);
$title = preg_replace("/(ỳ|ý|ỵ|ỷ|ỹ)/", 'y', $title);
$title = preg_replace("/(đ)/", 'd', $title);
$title = preg_replace($url_pattern , '-', $title);
return $title;
}

OK! Tôi thử và nó chạy tốt. Bạn có thể sử dụng hàm này của tôi nếu muốn. Nếu bạn sợ việc update phiên bản làm mất hàm này thì bạn có thể download plugin này (cái này tôi viết riêng ra cho dễ): Permalink_Friendly_for_Vietnamese.zip

Chúc các bạn thành công.

Bài có liên quan

  • “Đùa” với wordpress theme (9)
    Lâu lắm rồi mình mới bắt tay vào viết một bài viết nghịch ngợm Wordpress để chia sẻ với các bạn đọc. Hôm nay, chúng ta cùng nghịch với giao diện của Wordpress để tùy biến theo ý mình nhé. Dynamic Highlight Menu Trên menu của bạn, bạ...
  • Khắc phục lỗi gửi email trong Wordpress khi hàm email() bị chặn (1)
    Theo như mặc định, hệ thống Wordpress sử dụng hàm email() để gửi email trong toàn hệ thống. Đây có thể coi là một trong những hạn chế của Wordpress do không phải hosting nào cũng hỗ trợ hàm này. Lý do đơn giản được các ISP đưa ra là h...
  • Plugin WordPress: Vietnamese Permalink (0)
    Tiếp tục con đường phát triển của Plugin Permalink Friendly for Vietnamese nhằm giải quyết những khó khăn trong việc sử dụng tiếng Việt trên blog Wordpress với tên mới ngắn hơn, dễ đọc hơn: Vietnamese Permalink. Plugin Permalink Friendly for Vietnam...
  • Giới thiệu wordpress plugin : RobotVN (11)
    Sau khi bổ sung tính năng lấy bài viết cho Plugin WPRobot và giới thiệu nó với mọi người mình nhận được rất nhiều phản hồi tích cực. Trong đó có nhiều ý kiến của các bạn cho rằng việc phát triển Plugin này là cần thiết và phù hợp ...
  • NhanWeb thay đổi giao diện blog (2)
    Do số lượng người đọc blog ngày một gia tăng nên NhanWeb quyết định thay đổi giao diện blog của mình. Mục đích của việc thay đổi này nhằm làm cho blog thân thiện hơn, gần gũi hơn với người dùng và cải thiện tốc độ tải trang. Nh...
  • WordPress Robot – Phát triển lên tí xíu cho người Việt (7)
    Nhằm chuẩn bị cho buổi thảo luận về chủ đề Auto Post và giới thiệu với mọi người về Plugin Wordpress Robot mình có chuẩn bị vài thứ :D Trong đó có việc phát triển ứng dụng Wordpress Robot để có thể lấy tin từ các website của Việt N...
  • Auto post với WordPress Robot, bạn nào quan tâm hông ? (1)
    Ngày 29/05 tới mình có buổi thảo luận cùng các thành viên câu lạc bộ Webmaster Việt Nam về chủ đề cơ chế lấy tin tự động từ các website thông qua keyword nhất định và ứng dụng cơ chế này vào việc đăng bài tự động với Wordpress. B...
  • Một số Plugin WordPress nên dùng (8)
    Không biết các bạn có xem qua bài present của Matt Cutts khi tham gia diễn đàn WordCamp giành cho các nhà phát triển Wordpress diễn ra ở San Francisco chưa. Mình cũng down về và xem qua và nhận ra một số plugin được Matt Cutts sử dụng trong bài thuyết ...
  • Nghịch ngợm tí: Viết plugin cho WordPress (2)
    Lâu quá mình không nghịch ngợm, hôm nay dỡ hơi tầm bơi tự nhiên nảy sinh ý định viết một plugin cho Wordpress. Thế là bắt tay thực hiện luôn :). Ý tưởng Xuất phát ý tưởng kết hợp plugin Commentluv vào Blogroll của Wordpress để cho ra đ...
  • Remove “category” trong danh mục Wordpress (0)
    Theo mặc định, từ "category" được gán vào mỗi URL của mỗi danh mục trong blog Wordpress. Tất nhiên từ này không cần thiết và hạn chế khả năng SEO của website. Giờ là thời điểm chúng ta phải loại bỏ nó đi để URL của website bạn đẹp ...

16 Comments to “Xử lý dấu tiếng Việt trong URL WordPress”

Post comment

:D :) >:D< :P :(( :beat: ;):x L-) ;)) :shot: =)) :kill: >:) =P~ more »