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”:

Yahoo! 360 Home

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:

Dashboard

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:

Yahoo! Pipes

Bước 2 tớ viết một plugin nho nhỏ để thay feed Development news bằng feed vừa tạo:

  1. <?php
  2. /*
  3. Plugin Name: Lastest from my friends
  4. Plugin URI: http://onetruebrace.com/mo-phong-tinh-nang-lastest-from-my-friends-cua-yahoo-360-trong-wordpress/
  5. Description: Yahoo! 360 Home simulator
  6. Author: Quang Anh Do
  7. Version: 0.1
  8. Author URI: http://onetruebrace.com
  9. */
  10. 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’);
  11. add_filter(‘dashboard_primary_feed’, ‘qad_lfmf’);
  12. add_filter(‘dashboard_primary_title’, ‘qad_lfmf_title’);
  13. function qad_lfmf_title($title) {
  14. return ‘Lastest from my friends’;
  15. }
  16. function qad_lfmf($feed) {
  17. return ‘http://pipes.yahoo.com/pipes/pipe.run?_id=eBH3AZPP3BGdZCyDEpPZnA&_render=rss&feeds=’.urlencode(FEEDS);
  18. }
  19. ?>
<?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:

  1. //$rss->items = array_slice($rss->items, 0, 3);
//$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:

  1. <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>
  2. <p><?php echo $item['description']; ?></p>
<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.

http://onetruebrace.com/mo-phong-tinh-nang-lastest-from-my-friends-cua-yahoo-360-trong-wordpress/

Plugin Quick comment cho WordPress

Bài viết bạn sắp đọc thuộc loạt bài Quick comment cho WordPress

  1. Quick comment cho WordPress
  2. Plugin Quick comment cho WordPress

5 phút dành cho giới thiệu

Plugin Quick comment cho WordPress dĩ nhiên là để… đem tính năng Quick comment vào cho WordPress. Cụ thể hơn thì plugin này bao gồm 2 module:

Một cho phép người đọc blog gửi quick comment. Module này thường đặt trên sidebar (giống Yahoo! 360):

Quick comment @ Sidebar (no widget)

Nếu blog bạn yêu cầu nhập tên và email trước khi gửi comment thì người chưa từng gửi comment sẽ phải điền thêm 2 mục đó:

Quick comment @ Sidebar (new user)

Người đã từng gửi comment và được approve sẽ chỉ phải điền nội dung comment và bấm Post (giống như hình đầu tiên).

Một cho phép mọi người xem danh sách 200 quick comment mới nhất. Module này hiển thị ở một trang riêng (tương tự như All comments của Yahoo! 360):

Quick Comment @ QC Page

10 phút dành cho hướng dẫn cài đặt

Có rất nhiều thứ để tùy biến trong plugin này, nếu như bạn muốn tính năng Quick comment hoạt động mượt trong blog mình. Do đó tớ sẽ nói dài dòng một chút.

Đầu tiên, bạn phải tải plugin về theo link: http://onetruebrace.com/download/quickcomment.zip

Giải nén ra bạn sẽ có thư mục quickcomment và một file mang tên quickcomments-sample.php

Hãy upload thư mục quickcomment vào thư mục /wp-content/plugins của bạn. Cấu trúc thư mục khi đó sẽ là /wp-content/plugins/quickcomment/quickcomment.php.

Bạn login vào Admin Panel, activate plugin này như bình thường. Một màn hình “quấy rối” sẽ hiện ra yêu cầu bạn tiến hành cài đặt:

Nag screen

Chuyển qua màn hình cài đặt, bạn hãy đọc kỹ hướng dẫn trước khi… cài đặt.

Installer

Tớ chỉ viết những thứ cần thiết, và việc cài đặt chỉ gồm một bước, nên bạn không cần vừa ngáp vừa Next liên tục như cài software trên máy tính.

Cài xong, bạn chuyển qua bước Thiết lập các tùy chọn:

Configuration

Nếu muốn tùy biến cách thức hiển thị trang All comments bằng page template, bạn bỏ chút thời gian đọc phần Hướng dẫn. Còn không, cứ để kệ đó không cần thay đổi thiết lập gì cả.

Bước cuối cùng (mong là vậy) là chuyển qua màn hình Widgets để cài đặt widget vào sidebar của bạn:

Widget

Nếu chẳng may theme của bạn không hỗ trợ widget, hãy chuyển về màn hình Thiết lập các tùy chọn để lấy đoạn code cần paste vào file sidebar.php.

Đây là vài hình ảnh khác về widget và trang All comments trên theme Default:

WidgetAll comments

Rất hy vọng tớ viết không quá khó hiểu.

http://onetruebrace.com/plugin-quick-comment-cho-wordpress/

« Bài viết cũ hơn