Mô phỏng tính năng Lastest from my friends của Yahoo! 360 trong WordPress
Giới thiệu đôi nét
Một trong những điểm mạnh của Yahoo! 360 là tạo tính tương tác giữa các blogger thông qua việc add friends, viết testimonial, quick comment,… Ngay khi login vào Yahoo! 360, blogger có thể biết được những thông tin mới nhất ở blog bạn bè mình thông qua mục “Lastest from my friends and favorites”:
Với WordPress, màn hình Dashboard chỉ đưa ra những thông tin liên quan đến blog của bạn: bài viết, comment mới nhất, incoming links cũng như tin tức về WordPress, lấy từ Development blog và Planet WordPress. Trong bài viết này tớ sẽ nêu một cách đơn giản để mô phỏng tính năng Lastest from my friends của Yahoo! 360 trong WordPress, hiển thị các bài viết mới nhất từ các blog bạn quan tâm ở Dashboard. Để đơn giản tớ gọi “các blog bạn quan tâm” là friend list.
Chút lý thuyết
Nguyên tắc thực hiện khá đơn giản: Với từng blog trong friend list, bạn cần lấy nội dung bài viết gần nhất thông qua RSS feed của blog đó. Các bài viết này sẽ được sắp xếp theo thứ tự thời gian và hiển thị ở Dashboard thay cho Development news, giống như thế này:
Những gì tớ đã làm
Có nhiều cách để thực hiện quá trình này, nhưng tớ chọn cách đơn giản nhất, nhanh chóng nhất và đỡ mất công gõ code nhất.
Bước 1 tớ tận dụng Yahoo! Pipes để tổng hợp các RSS feeds trong friend list thành một feed duy nhất thỏa mãn với yêu cầu đã nêu ở trên:
Bước 2 tớ viết một plugin nho nhỏ để thay feed Development news bằng feed vừa tạo:
<?php
/*
Plugin Name: Lastest from my friends
Plugin URI: http://onetruebrace.com/mo-phong-tinh-nang-lastest-from-my-friends-cua-yahoo-360-trong-wordpress/
Description: Yahoo! 360 Home simulator
Author: Quang Anh Do
Version: 0.1
Author URI: http://onetruebrace.com
*/
define('FEEDS', 'http://onetruebrace.com/feed|http://feeds.feedburner.com/peopix/rss|http://viettut.info/feed|http://feeds.feedburner.com/codinghorror|http://feeds.feedburner.com/Cakebaker|http://feeds.feedburner.com/phamen|http://feeds.feedburner.com/nguoitapviet/Erne');
add_filter('dashboard_primary_feed', 'qad_lfmf');
add_filter('dashboard_primary_title', 'qad_lfmf_title');
function qad_lfmf_title($title) {
return 'Lastest from my friends';
}
function qad_lfmf($feed) {
return 'http://pipes.yahoo.com/pipes/pipe.run?_id=eBH3AZPP3BGdZCyDEpPZnA&_render=rss&feeds='.urlencode(FEEDS);
}
?>
Những gì bạn cần làm
Bạn hãy save đoạn code trên lại với tên lastest.php, upload vào thư mục /wp-content/plugins/ và truy cập Admin Panel để activate plugin Lastest from my friends.
RSS feed trong friend list bạn cần khai báo tương tự như tớ. Nhớ là các URL này phân cách bằng dấu gạch thẳng (| - thường nằm trên phím Enter).
Mặc định mục Development news (nay là Lastest from my friends) chỉ hiển thị 3 item trong RSS feed. Do đó để muốn xem tất cả các item, bạn cần mở file /wp-admin/index-extra.php, comment dòng thứ 37 như sau:
//$rss->items = array_slice($rss->items, 0, 3);
Nếu muốn biết bài viết nào là của ai, bạn sửa tiếp dòng thứ 40 của file index-extra.php thành:
<h4>[<?php echo $item['author'] ?>] <a href='<?php echo wp_filter_kses($item['link']); ?>'><?php echo wp_specialchars($item['title']); ?></a> — <?php printf(__('%s ago'), human_time_diff(strtotime($item['pubdate'], time() ) ) ); ?></h4>
<p><?php echo $item['description']; ?></p>
Còn gì nữa không?
Sửa file nằm trong core của WordPress không phải là điều nên làm, và thường thì khi nâng cấp WordPress bạn sẽ phải thực hiện lại việc này; nhưng tớ thấy không đáng để làm cho source code plugin hiện có dài ra gấp 3 gấp 4 lần để làm những việc chỉ mất vài phút.
Có gì góp ý bạn cứ để lại comment.
Bài viết được gửi hôm 31.01.08 · Mang các từ khóa plugin, thủ thuật, wordpress, yahoo 360
Bài viết liên quan:
htl gửi hôm 31.01.08 lúc 3:29 pm #
Thế còn cái plugin Dashboard Editor thì làm đc gì? :D
viettut gửi hôm 01.02.08 lúc 12:58 am #
Plugin này đơn giản và cũng có ích đấy chứ… ;)
Nhưng nếu để dùng rộng rãi thì bác nên phát triển thêm: thêm phần quản lý để thêm, xóa feed, tùy biến số lượng tin, thông tin tác giả ngay trong Dashboard. (Khỏi phải can thiệp vào mã nguồn của WordPress cũng như làm thủ công trong Plugin Editor ;)) )
viettut gửi hôm 01.02.08 lúc 1:20 am #
à,ờ… dùng thử và kết quả là Dashboard không hiển thị gì cả (ngoài footer.)
QAD gửi hôm 01.02.08 lúc 1:28 am #
@viettut: tớ ko có ý định làm một plugin bự hoàn chỉnh nên chỉ đến thế này thôi :D
@htl: đấy là do blog bác lởm như mọi lần :”>
htl gửi hôm 01.02.08 lúc 3:23 am #
htl nào :-w
QAD gửi hôm 01.02.08 lúc 9:44 am #
@htl: sorry bác, em nhầm chuồng :”>
@viettut: hơi chuối nhỉ, tớ dùng toàn filter của WP chứ có tự code lấy đâu mà ko được nhỉ :-?
viettut gửi hôm 01.02.08 lúc 2:49 pm #
;) để em test trên blog khác ;))
viettut gửi hôm 01.02.08 lúc 3:46 pm #
=(( vẫn không làm đc, lần này khá hơn ;)) Sau khi Active, Dashboard vẫn như cũ, không có việc gì xảy ra :((
QAD gửi hôm 02.02.08 lúc 11:16 am #
Thế thì chịu rồi :D
Tớ đã test cả trên localhost và blog tớ luôn. Ngon mà 8->
Mạnh Tuấn gửi hôm 03.02.08 lúc 7:27 am #
Anh đã nghĩ không biết bài viết này của em có tạo ra tác động lớn như 360xport em làm cho http://sky.vn hay không. Nhưng có điều chắc chắn là Sky sẽ dùng. Đây là blog mang lại nhiều lợi ích cho công việc nhất mà anh từng gặp. Must read. Thanks
htl gửi hôm 03.02.08 lúc 8:01 am #
Căn bản cũng là tiếng việt nữa QAD nhỉ :”>
viettut gửi hôm 06.02.08 lúc 12:12 pm #
Hôm nay ở bên VN là giao thừa, chúc QAD vui vẻ nhé… bên Anh chắc không được vui như ở VN nhỉ? :x
QAD gửi hôm 08.02.08 lúc 12:57 am #
@viettut: Cảm ơn nhé. Bên này dịp Tết không khí sao bằng Việt Nam được ^^
Chúc cậu năm mới vui vẻ.
MTuấn gửi hôm 21.03.08 lúc 12:05 pm #
Ngâm cứu, ngâm cứu để làm waiting room cho Sky đây
Vũ Phương gửi hôm 19.04.08 lúc 5:59 am #
Mình có tạo cái Pipes như sau http://pipes.yahoo.com/pipes/pipe.run?_id=cG4fq9MN3RGw8VLfTaoASA&_render=rss để tổng hợp các entry mới nhất của bạn bè, rồi dùng widget RSS có sẵn của WordPress.com để đưa ra Sidebar, nhưng không biết có cách nào thêm tên author vào trước tiêu đề bài viết không nhỏ? (author, avatar gì cũng được)
QAD gửi hôm 19.04.08 lúc 2:35 pm #
@Vũ Phương: Theo tớ biết thì trong Pipe việc xử lý còn hạn chế lắm, hình như ko được thì phải.
Vũ Phương gửi hôm 19.04.08 lúc 4:20 pm #
Ok, thx QAD nhiều ^_^