Bổ sung chức năng tạo tiêu đề không dấu khi đăng bài trong WordPress

Published by Việt Coding on

Xin chào các bạn,

Mấy hôm nay không post bài mới trên blog vì cũng hơi bận rộn. Từ tối 15 (sau khi post bài Thay đổi dòng chữ “slide to unlock” trên iPhone ) đến chiều 17, tôi tạm giã từ thành phố HCM để vi vu lên miền cao nguyên lạnh giá Đà Lạt nghỉ ngơi cùng vợ iu và nhóm bạn thân Đại học. Về đến nhà thì cặm cụi sửa lại cái theme hiện đang dùng theo ý mình, như các bạn đang thấy. Đến hôm nay mới tiếp tục viết blog được.

Trong bài viết hôm nay, tôi chia sẻ một kinh nghiệm mà tôi tự tìm ra được. Đó là thêm một chức năng nhỏ sử dụng JavaScript dùng chuyển đổi một chuỗi tiếng Việt có dấu thành không dấu vào trình soạn thảo của WordPress. Chức này giúp bạn chuyển đổi nhanh chóng tiêu đề của bài viết thành không dấu với độ chính xác 100% (tính tới thời điểm tôi post bài này.)

Trước khi áp dụng chức năng này vào WordPress, tôi đã áp dụng tốt cho blog cũ của tôi trên mã nguồn Bo-Blog. Sau khi convert dữ liệu sang WP, tôi cũng có tham khảo một số kinh nghiệm về vấn đề này. Ví dụ như tại blog của bạn Nguyễn Duy Nhân. Tuy nhiên cách này vẫn chuyển đổi thành một chuỗi không dấu chưa hoàn chỉnh:

image

WordPress xử lý tiếng Việt chưa hoàn chỉnh.

Sau khi hiệu chỉnh một đoạn nhỏ trong WP, chúng ta sẽ được như sau:

image

Chỉ cần thêm một đoạn JavaScript. Kết quả đã được như thế này.

Nếu bạn có hứng thú thì chúng ta tiếp tục nhé 😀

Tôi nói rõ một chút mấu chốt của vấn đề để các bạn dễ hiểu. Theo mặc định WP có một hàm làm nhiệm vụ chuyển đổi chuỗi tiêu đề tiếng Việt có dấu thành không dấu là sanitize_title_with_dashes($title). Tuy nhiên, nó không thực sự làm tốt công việc được giao 😀 Mặt khác, hàm trên được viết bằng PHP là một loại ngôn ngữ server-side, khi được gọi, webserver sẽ tốn thời gian để biên dịch và chạy nó. Điều này ít nhiều gì cũng làm hao hụt tài nguyên của máy chủ. Thay vào đó, tôi ở đây sử dụng JavaScript để chuyển đổi chuỗi. Như các bạn đã biết, JS là script ở phía client nên không tốn tài nguyên của máy chủ để xử lý. Mặt khác đoạn mã JS đã được tối ưu, độ chính xác khi chuyển đổi là 100% – như tôi đã nói ở trên, ở đây xin nhấn mạnh lại 😀

Tôi xin giới thiệu đoạn script này:


Xin lưu ý là đoạn code đã được chỉnh sửa để phù hợp với WordPress.

Bước tiếp theo hãy tìm đến: /blog/wp-admin/edit-form-advanced.php

WordPress Slug không dấu

Hiệu chỉnh tập tin 'edit-form-advanced.php'

Bạn hãy tìm đến đoạn sau:

imageVà chèn đoạn mã dưới đây vào:

Tạo Slug chuẩn không dấu Tiếng Việt

Save lại, và upload lên host. Sau đó đăng nhập vào phần Admin và thử tạo một bài viết mới. Lúc này, ngay bên dưới text box nhập tiêu đề của bài viết xuất hiện thêm một liên kết “Tạo Slug chuẩn không dấu Tiếng Việt”.
Bạn thử gõ một tiêu đề vào để test thử. Đợi cho WP tự động đổi chuỗi trên rồi bạn nhấn vào nút Edit. Rồi nhấn vào link trên. Chuỗi trong textbox sẽ được chuyển ngay thành không dấu. Bạn OK để hoàn tất.

Khi bạn đã làm được đến đây, bài viết của tôi cũng đã hoàn tất ! 😀

[msg=note]Hy vọng bạn sẽ thích mẹo nhỏ này của tôi. Tôi mới nghiên cứu WP chưa lâu nên chưa đủ trình viết thành một plugin nên cách này hơi bất tiện mỗi khi các bạn upgrade WP lên version mới sẽ bị mất và phải làm lại. Trong thời gian tới, tôi sẽ thử viết thành một plugin xem sao.[/msg]

(Copyright © 2010 by Hoàng  Tuấn  Anh -Shinichi @ Shinichi Blog – http://vietcoding.com)


Việt Coding

Là một người đam mê lập trình, tôi vọc vạch đủ thứ liên quan đến lập trình cho thoả chí tò mò. Hiện làm chủ yếu ở mảng phát triển ứng dụng di động cho iOS và Android với React Native. Thỉnh thoảng vọc vạch mấy thứ liên quan đến Internet of Things như Smart Home. Đang nghịch mấy con Raspberry Pi và thấy nó cũng thú vị :)

4 Comments

Jony Nguyễn · 21/11/2010 at 08:37

code lỗi rồi fix lai đi bạn ơi.
http://img.scenereleases.info/images/snapshot.jpg

Nhân tiện cho hỏi : Cách Phân trang trong 1 bài viết như thế nào? chỉ mình cụ thể tí nha. mình gà mờ về code lắm

Giải pháp xử lý tiếng Việt có dấu hoàn hảo trên WordPress — Việt Coding | CSharp, Delphi | ASP.NET, PHP, ASP, JSP | WordPress, VBulletin · 23/09/2010 at 14:20

[…] khá nhiều giải pháp để sửa lỗi này, trong đó Việt Coding đã có đăng một giải pháp sử dụng JavaScript . Cách này có một số điểm mà Việt Coding đánh giá như sau:+) Thuận lợi: – Xử […]

Giải pháp xử lý tiếng Việt có dấu hoàn hảo trên WordPress với plugin WP-Vietnamese-URL — Việt Coding | CSharp, Delphi | ASP.NET, PHP, ASP, JSP | WordPress, VBulletin · 23/09/2010 at 14:21

[…] khá nhiều giải pháp để sửa lỗi này, trong đó Việt Coding đã có đăng một giải pháp sử dụng JavaScript . Cách này có một số điểm mà Việt Coding đánh giá như sau:+) Thuận lợi: – Xử […]

Comments are closed.