Trước tiên hãy chọn một bộ smilies mà bạn thích để thay thế cho smilies cũ của WordPress. Bạn đừng lo sẽ không kiếm được smilies bởi trên Internet hiện nay có rất nhiều site cung cấp smilies miễn phí, dưới đây là một số link mà tôi biết:
- http://messenger.yahoo.com/features/emoticons/
- http://www.adiumxtras.com/index.php?a=cats&cat_id=2&sort=ranking
- http://ddth.com/misc.php?do=showsmilies (search Google cái ra luôn
)
- http://www.ikiru.ch/blog/2006/more-smilies-addon-a-tribute-to-julien
- http://www.smileyarena.com/
- http://www.msnemoticons.org/
- http://www.jms101.btinternet.co.uk/
sau đó upload các smilies vào thư mục
- /wp-includes/images/smilies (nếu là WordPress 2.x)
- /wp-images/smilies (nếu là WordPress 1.x)
Kế đến ta sẽ định nghĩa lại biến $wpsmiliestrans để tạo ra bảng ánh xạ mới cho các smilies vừa upload trước khi hàm smilies_init() chạy. Để làm được việc này, ta phải nhờ đến một file đặc biệt trong WordPress, file này phải được load trước tất cả các file khác, đó chính là file wp-config.php.
wp-config.php là file chứa thông tin về database mà WordPress đang chạy, nó khá quan trọng vì thế bạn nên backup nó trước khi "đụng" vào nhé! O:-)
Lưu ý: file này vẫn được giữ nguyên mỗi khi bạn nâng cấp WordPress
Bạn chèn thêm biến $wpsmiliestrans vào file wp-config.php ở vị trí như hình dưới đây:

Như bạn thấy, $wpsmiliestrans là một mảng 2 chiều, bên trái chứa ký tự đặc biệt, bên phải chứa tên file icon. Công việc còn lại của bạn là định nghĩa thêm các smilies khác nữa là xong, rất đơn giản phải không nào? Thế thì bạn còn chần chừ gì nữa, hãy làm mới lại hệ thống smilies cho blog của mình ngay từ bây giờ để tha hồ biểu lộ cảm xúc, blog của bạn sẽ sinh động hẳn lên đấy. >:d<
======> Bổ sung <======
Tôi có soạn sẵn một file rar chứa 2 bộ smilies của Yahoo! Messenger với MSN (có kèm theo file text chứa biến $wpsmiliestrans) tại đây. Bạn chỉ việc lấy về rồi upload icon lên với paste file text vào file wp-config.php là xong.












UNITED STATES and using
24 Responses to “Customize WordPress Smilies without using Plugin”
Bài khá lý thú, tuy nhiên nếu bác trình bày thêm cách để xuất hiện một list emotion trên phần new post và cả trên comment tương tự thế này nữa thì tuyệt
Có chứ bác, nhưng em để dành cho bài kế tiếp
Bổ sung: hình như nếu bác dùng emotion yahoo nhưng cái kiểu gõ như trong YM là không được, một số sẽ bị lỗi do sử dụng các ký tự mà wordpress có thể bỏ qua, bác có thể thống kê được các ký tự đó không. Thanks
Bác nói rất đúng =D>
Có một số smilies của yahoo không hiển thị được do có chứa ký tự \ "
Nguyên nhân là do trong WordPress có một hàm tên là wptexturize(), nó có nhiệm vụ thay thế những ký tự trên thành mã html đặc biệt (htmlspecialchars) chính vì vậy mà WordPress không thể hiện được các smilies đó.
Để khắc phục, bác chỉ việc thêm 3 câu lệnh sau vào file functions.php trong theme của bác:
Bác làm thử xem có được không nhé!
Rất hay, có thể xem bác là guru của wordpress được rồi đấy, sẽ thử ngay
Thêm vào chỗ nào vậy bác
Vào file funtions.php của theme, chỗ nào cũng được miễn nằm trong khối
< ?php .... ?>Cám ơn bác.
Tặng thêm cho mọi người một site cung cấp Emotitions nữa nè: http://emo.huhiho.com/
Trang này có nhiều bộ Emo đẹp và hot do Redphoenix89 sưu tầm.
Bài viết rất hay
. Giúp tớ hiểu thêm khá rõ về mấy hàm "core" của WP.
Có điều, tớ thấy phương pháp thao tác trực tiếp với các file gốc của WP ko phải là ý tưởng tốt lắm. Nếu có thể, chúng ta tách nó ra thành 1 plugin hoặc 1 function trong theme chẳng hạn. Liệu có thể khai báo trực tiếp trong file functions.php của theme dạng này được ko (tớ chưa thử, mới chỉ là ý nghĩ vậy
)
global $wpsmiliestrans;
$wpsmiliestrans = array("abc" => "xyz", ...);
Cám ơn cậu về ý tưởng đó nhé! =D>
Mình sẽ xem lại, hy vọng là nó chạy được, khi đó khỏi phải sửa trực tiếp file trong core của WordPress.
Test thử tất cả các smilies của YM xem nào
Hay lắm, em đang test thử, cám ơn bác.
=))
Bác viết nhầm rồi bác ơi, phải dán mấy cái text kia trong file wp-includes/fuctions.php chứ hok phải là wp-config.php. Em đang dùng wp 2.7.1
Em không nhầm đâu bác ạ, nếu bác sửa file /wp-includes/functions.php thì mỗi khi bác update version mới của WordPress, nếu file đó nằm trong danh sách file được cập nhật (overwrite) thì mọi sự thay đổi của bác sẽ bị mất.
Em chọn file wp-config.php là có nguyên do đấy bác, bởi file đó chứa thông tin của database nên sau khi install blog xong, WordPress sẽ không đụng tới file đó nữa, bác cứ yên tâm mà sửa nó nhưng nhớ backup trước để phòng sự cố.
Em thử trong file config những lúc đó thì blog không hiển thị, còn nếu chinhe trong fuction thì lại chạy ngon ơ, bác có thể xem demo ở blog em:
http://vnghost.byethost22.com
Mà cái này em dùng thêm plugin customs smile mới hiển thị ở comments, em mò mãi mới biết cái đó nó nằm trong file fuction, chớ config thì hok thấy mấy cái dòng mà bác chỉ dẫn nó ở đâu.
Cách này của bác lên 2.8 bị lỗi /wp-includes/formatting.php nhé
Vâng, cám ơn bác, em sẽ tìm cách update cho nó chạy tốt với WP 2.8
Bác Hiếu up lại file đính kèm giùm cái, bác upgrade wp nó xóa rồi sao ấy ?
Hư hình rồi anh ơi, up lại đi ạ ^^!
mất tiêu cái hình rồi. admin up lại giùm nha!!!
làm sao để hiện cái bbcode in đậm, in nghiêng, smilies.... chỗ phần comment vậy