Nội dung
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Nguồn cấp dữ liệu RSS cho phép khách truy cập của bạn đăng ký nội dung của bạn để sử dụng trong trình đọc RSS yêu thích của họ. Ví dụ: đăng ký nguồn cấp dữ liệu bài đăng blog hoặc các nhận xét là một cách tuyệt vời để người đọc của bạn luôn cập nhật các tin tức mới và nội dung mới nhất từ trang web của bạn.
Với WordPress, bạn có thể cung cấp nhiều nguồn cấp dữ liệu “Đầy đủ” hoặc “Tóm tắt” (một phần) ở nhiều định dạng, bao gồm cả Atom, RDF và RSS2. Sự đa dạng này mở rộng phạm vi tiếp cận nội dung của bạn bằng cách cho phép nguồn cấp dữ liệu của bạn được đọc trong nhiều ứng dụng, độc giả và thiết bị.
Như các nguồn cấp dữ liệu mặc định, chúng cũng có thể dễ dàng tùy chỉnh bằng nhiều cách khác nhau. Ngoài các cách tích hợp sẵn của WP để cấu hình nguồn cấp dữ liệu của bạn, bạn cũng có thể tùy chỉnh các mẫu, tính năng và plugin tùy chỉnh. Trong bài đăng này, bạn sẽ tìm hiểu mọi thứ bạn cần để tùy chỉnh nguồn cấp dữ liệu của mình với nội dung, bài đăng gần đây, mạng xã hội và nhiều hơn nữa.
WordPress feeds
Theo mặc định, mọi dữ liệu trong WordPress sẽ có địa chỉ nguồn cấp dữ liệu riêng.
# dữ liệu chỉnh, gồm các bài đăng mới nhất https://example.com/feed/ # bình luận, gồm các bình luận mới nhất https://example.com/comments/feed/ # bình luận cho bài viết cụ thể https://example.com/2009/07/getting-more-fine-grained-with-includes/feed/ # bình luận cho trang https://example.com/archives/feed/ # Archives https://example.com/2010/feed/ https://example.com/2010/10/feed/ https://example.com/2010/10/02/feed/ # bài đăng mới nhất cho tìm kiếm https://example.com/search/term/feed/
Mỗi loại nguồn cấp có các định dạng sau.
- Atom – URL thêm /atom
- RDF – URL thêm /rdf
- RSS2 – URL thêm /feed, /feed/rss, hoặc /feed/rss2/
Chú ý: Trong các phiên bản trước của nguồn cấp dữ liệu WordPress cũng được tạo ở định dạng RSS-0.92, nhưng hiện tại chúng được chuyển hướng đến các định dạng RSS-2.0 tương ứng, mặc dù XML cho RSS-0.92 vẫn được sử dụng trong WordPress. Các template này, WordPress cũng sử dụng để tạo các loại nguồn cấp dữ liệu khác nhau ở các định dạng khác nhau.
Tệp template
Để tạo các định dạng nguồn cấp dữ liệu khác nhau – Atom, RDF và RSS2 – cho vô số loại nguồn cấp dữ liệu của mình, WordPress sử dụng các tệp mẫu sau.
Bài đăng
/wp-includes/feed-atom.php
/wp-includes/feed-rdf.php
/wp-includes/feed-rss.php
/wp-includes/feed-rss2.php
Mình giải thích một chút: feed-atom.php được sử dụng cho các nguồn cấp dữ liệu Atom, feed-rdf.php cho các nguồn cấp dữ liệu RDF, v.v. Như đã đề cập, điều cần lưu ý ở đây là feed-rss.php (cho định dạng RSS-0.92) vẫn tồn tại trong WP, mặc dù nó không còn được sử dụng nữa.
Bình luận
/wp-includes/feed-atom-comments.php
/wp-includes/feed-rss2-comments.php
Các nguồn cấp dữ liệu dựa trên nhận xét chỉ có sẵn trong hai hương vị: Atom và RSS 2.0. Cũng như các nguồn cấp dữ liệu bài đăng, các yêu cầu cho nguồn cấp nhận xét RSS-0.92 được chuyển hướng đến các định dạng RSS-2.0 tương ứng của chúng.
Dưới đây là một số ví dụ:
- https://example.com/comments/feed/rdf/
- https://example.com/2012/12/best-of-digwp-com/feed/rdf/
Với mỗi ví dụ sau, sẽ có ý nghĩa hơn khi chuyển hướng đến nguồn cấp dữ liệu bình luận (RSS2) tương ứng, thay vì bất kỳ nguồn cấp dữ liệu bài đăng nào.
Feed
/wp-includes/feed.php
Tệp feed.php chứa một số hàm chính được sử dụng trong các template nguồn cấp dữ liệu khác nhau. Ví dụ: hàm rss_enclenses() được sử dụng trong feed-rss2.php để hiển thị bất kỳ dữ liẹu RSS nào được bao gồm cho bài đăng hiện tại.
<enclosure url="http://awesome-video.flv" length="104857600" type="video/x-flv" />
WordPress sẽ tự động thêm thẻ enclosure
vào nguồn RSS2 thông qua hàm rss_enclosure(). XML sẽ trông giống như thế này:
<item> <title>Awesome Video</title> <link>http://example.com/awesome-video/</link> <comments>http://example.com/awesome-video/#comments</comments> <pubDate>Wed, 17 Oct 2012 06:51:07 +0000</pubDate> <dc:creator>Perishable</dc:creator> <category><![CDATA[WordPress]]></category> <guid isPermaLink="false">http://example.com/?p=132</guid> <description><![CDATA[Check out this awesome video..]]></description> <wfw:commentRss>http://example.com/awesome-video/feed/</wfw:commentRss> <slash:comments>500</slash:comments> <enclosure url="http://awesome-video.flv" length="104857600" type="video/x-flv" /> </item>
Trong phần cuối của tệp feed-rss2.php, có tạo dữ liệu:
. . . <wfw:commentRss><?php echo esc_url( get_post_comments_feed_link(null, 'rss2') ); ?></wfw:commentRss> <slash:comments><?php echo get_comments_number(); ?></slash:comments> <?php rss_enclosure(); ?> <?php do_action('rss2_item'); ?> </item> <?php endwhile; ?> </channel> </rss>
Đối với atom có hàm tương tự atom_enclosure
trong file feed.php
Tùy biến dữ liệu Feed
Cách dễ nhất đẻ tùy biến dữ liệu feed là sử dụng những tùy chọn có sẵn trong WordPress.
Full-text hoặc Summary feed?
bạn có thể chọn hiển thị post đầy đủ hoặc mô tả ngắn cho dữ liệu feed, bằng cách thay đổi cài đặt tại Settings > Reading Settings. Chú ý, không áp dụng cho bình luận, dữ liệu comment luôn hiển thị dạng đầy đủ.
Số lượng posts/comment
Để thay đổi số lượng items cho bài đăng hay trong nguồn RSS, bạn truy cập Settings > Reading Settings và điều chỉnh tùy chọn “Syndication feeds show the most recent”. Cấu hình này sẽ áp dụng cho cả dữ liệu bài đăng và bình luận.
Tăng số lượng nội dung, có thể làm dữ liệu RSS của website thu hút với độc giả và những người đăng ký nội dung trên website của bạn. Khi bạn thiết lập để hiển thị nội dung đầy đủ, bạn nên giới hạn số lượng hiển thị các bài đăng/bình luận mới nhất, để tránh làm chậm website & tối ưu wordpress được tốt nhất.
Ký tự mã hóa (encoding)
Mặc định ký tự được mã hóa kiểu UTF-8, bạn cũng có thể chọn một mã hóa thay thế khác. Để thực hiện bạn truy cập Settings ▸ Reading Settings ▸ Encoding for pages and feeds.
Tùy chỉnh template
Có một cách khác giúp bạn tùy biến dữ liệu feed, bằng cách sửa đổi template. Ý tưởng để triển khai như sau:
- Tạo tùy chỉnh template – Tạo template feed.
- Sửa đổi template feed – VD, thay đổi số lượng bài đăng, hiển thị trong category, tùy chỉnh enclosures..
- Thêm link vào dữ liệu feed – cung cấp URL cho dữ liệu feed tùy chỉnh.
Với cách tiếp cận này có thể là một ý tưởng với nhiều người, nhưng bạn cũng có thể sửa đổi feeds đã có thay vì tạo mới.
Tùy biến Feeds sử dụng filters & hooks
Đây là cách phổ biến & hiệu quả nhất để tùy chỉnh dữ liệu feed trong WordPress . Ví dụ, WP hooks giúp bạn dễ dàng thay đổi nội dung của bài đăng.
// add custom feed content function add_feed_content($content) { if(is_feed()) { $content .= '<p>This article is copyright © '.date('Y').' '.bloginfo('name').'</p>'; } return $content; } add_filter('the_excerpt_rss', 'add_feed_content'); add_filter('the_content', 'add_feed_content');
Chèn đoạn code trên trong file functions.php, trong nội dung bài đăng sẽ chèn thêm dòng copyright như trên. Dĩ nhiên, có thể làm được nhiều hơn với sư trợ giúp của hàm WordPress, bạn có thể can thiệp vào từng feed cụ thể.
Atom post feeds
atom_ns()
atom_head()
atom_author()
atom_enclosure()
atom_entry()
RDF post feeds
rdf_ns()
rdf_header()
rdf_item()
RSS2 post feeds
rss2_ns()
rss2_head()
rss_enclosure()
rss2_item()
Atom comment feeds
atom_ns()
atom_comments_ns()
comments_atom_head()
comment_atom_entry()
RSS2 comment feeds
rss2_ns()
rss2_comments_ns()
commentsrss2_head()
commentrss2_item()
Ví dụ tùy chỉnh dữ liệu feed thông qua functions.php
đây là một số ví dụ thực tế cho thấy các cách khác nhau để tùy chỉnh nguồn cấp dữ liệu mặc định từ giao diện WordPress của bạn.
Thêm logo vào dữ liệu feed
Thêm hình ảnh vào RSS feed là một cách hữu ích để thúc đẩy thương hiệu của bạn là đưa logo và biểu tượng tùy chỉnh vào vùng tiêu đề của tất cả các nguồn cấp dữ liệu RSS. Chỉ cần thêm đoạn mã sau vào functions.php
// add icon and logo to Atom feeds add_action('atom_head','digwp_atom_feed_add_icon'); add_action('comments_atom_head','digwp_atom_feed_add_icon'); function digwp_atom_feed_add_icon() { ?> <feed> <icon><?php echo get_template_directory_uri(); ?>/images/logo.ico</icon> <logo><?php echo get_template_directory_uri(); ?>/images/logo.gif</logo> </feed> <?php } // add icon and logo to RSS feeds add_action('rss_head','digwp_rss_feed_add_icon'); add_action('rss2_head','digwp_rss_feed_add_icon'); add_action('commentsrss2_head','digwp_rss_feed_add_icon'); function digwp_rss_feed_add_icon() { ?> <image> <url><?php echo get_template_directory_uri(); ?>/images/logo.gif</url> <title><?php bloginfo_rss('name'); ?></title> <link><?php bloginfo_rss('url'); ?></link> <width>125</width> <height>75</height> <description><?php bloginfo('description'); ?></description> </image> <?php } // add icon and logo to RDF feeds add_action('rdf_header','digwp_rdf_feed_add_icon'); function digwp_rdf_feed_add_icon() { ?> <image rdf:about="<?php echo get_template_directory_uri(); ?>/images/logo.gif"> <title><?php bloginfo_rss('name'); ?></title> <url><?php echo get_template_directory_uri(); ?>/images/logo.gif</url> <link><?php bloginfo_rss('url'); ?></link> <description><?php bloginfo('description'); ?></description> </image> <?php }
Chú ý rằng, có 2 hình ảnh ở đây: một biểu tượng Atom feeds & logo cho Atom, RSS/RSS2, & RDF feeds.
Thêm thẻ
trang web trong feed
Một cách tuyệt vời để tăng phạm vi tiếp cận nguồn cấp dữ liệu là thêm các liên kết nguồn cấp trong phần
của trang web. Khi tính năng này được kích hoạt, WordPress sẽ dựa trên các nguồn cấp dữ liệu của nó và bao gồm các liên kết đến bất kỳ nguồn cấp dữ liệu có liên quan nào cho chế độ xem trang hiện tại. Điều này cho phép các thiết bị và trình duyệt “nhận biết nguồn cấp dữ liệu”, tự động phát hiện các nguồn cấp dữ liệu có sẵn của bạn, giúp khách truy cập khám phá và đăng ký dễ dàng hơn. Để kích hoạt tính năng này, bạn thêm đoạn mã sau vào tệp functions.php của giao diện WordPress:
// enable WP automatic feed links if (function_exists('automatic_feed_links')) { automatic_feed_links(); } else { return; }
Xóa phiên bản WP cho trang và feed
Mặc định, WordPress có đính kèm phiên bản trong dữ liệu feed. Tuy nhiên, mình khuyến khích bạn xóa thông tin phiên bản của WordPress . Để làm điều này, bạn thêm đoạn mã sau vào file functions.php
// remove version info from head and feeds add_filter('the_generator', 'digwp_complete_version_removal'); function digwp_complete_version_removal() { return ''; }
Công nghệ này cũng xóa phiên bản trong phần
.
Trì hoãn cập nhật feed sau khi đăng bài
Bạn muốn feed cập nhật sau một thời gian trì hoãn sau khi bạn đăng bài mới? Feed sẽ cập nhật sau vài phút sau khi bạn đăng nội dung mới.
// delay feed update after posting add_filter('posts_where', 'publish_later_on_feed'); function publish_later_on_feed($where) { global $wpdb; if (is_feed()) { // timestamp in WP-format $now = gmdate('Y-m-d H:i:s'); // value for wait; + device $wait = '5'; // integer // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff $device = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR // add SQL-sytax to default $where $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait "; } return $where; }
Sau khi thêm đoạn mã trên trong file functions.php, WordPress sẽ đợi 5 phút trước khi cập nhật dữ liệu feed với nội dung mới.
Vô hiệu hóa mọi dữ liệu feeds
Bạn tự hỏi, liệu bạn có muốn cung cấp nguồn cấp dữ liệu ngay từ đầu hay không? Mặc định, chúng được bật, nhưng đôi khi trang web được tối ưu hơn khi vô hiệu hóa chúng hoàn toàn. Để thực hiện bạn chép đoạn mã này vào tệp functions.php:
// disable all feeds function digwp_disable_feed() { wp_die(__('<h1>Feed not available, please visit our <a href="'.get_bloginfo('url').'">Home Page</a>!</h1>')); } add_action('do_feed', 'digwp_disable_feed', 1); add_action('do_feed_rdf', 'digwp_disable_feed', 1); add_action('do_feed_rss', 'digwp_disable_feed', 1); add_action('do_feed_rss2', 'digwp_disable_feed', 1); add_action('do_feed_atom', 'digwp_disable_feed', 1);
Tùy biến cho bài đăng đầu tiên
Ví dụ cuối cùng, chúng ta chỉ tùy biến nội dung feed của item đầu tiên.
// customize first feed post only add_filter('the_content', 'digwp_customize_first_feed_post'); add_filter('the_excerpt', 'digwp_customize_first_feed_post'); function digwp_customize_first_feed_post($content) { global $wp_query; if (is_feed()) { $feed_type = get_query_var('feed'); if ($wp_query->current_post == 0) { return '<p>Put some custom content here!</p>' . $content; } else { return $content; } } else { return $content; } }
Lưu ý: như hiện tại, nội dung tùy chỉnh được thêm vào đầu bài đăng đầu tiên. Thay vào đó, để thêm nội dung vào cuối bài đầu tiên, hãy chuyển thứ tự của biến $content lên đầu tiên.
return $content . '<p>Put some custom content here!</p>';
Hy vọng bài viết này có thể giúp bạn tùy biến dữ liệu feeds trong WordPress một cách hiệu quả.
Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Trường says
Chào bạn! Cho mình hỏi làm sao hiển thi bình luận chưa đc xét duyệt trong rss ? Cảm ơn
Trường ky says
Chào bạn! Cho mình hỏi làm sao hiển thi bình luận chưa đc xét duyệt trong rss ?
bình says
Cho mình hỏi làm sao hiển thi bình luận chưa đc xét duyệt trong rss ?
Hoàng Quách says
Hay! mình đã thành công, xem chi tiết: /tai-nguyen/tuy-chinh-du-lieu-rss-feeds-trong-wordpress
Trung Tâm Âm Nhạc Ngũ Cung says
hay quá bác ơi! Em nhìn chưa hiểu lắm, Nếu tự tạo cho mình 1 RSS list các bài báo như thế. Vậy e muốn lấy tin từ rss lên website cũng rất dễ dàng đúng ko bác.
Nguyễn Văn Thịnh says
mình cập nhật lại bài viết rồi bạn xem lại nhé
thevu says
Chào anh Thịnh,
Anh có thể nói rõ hơn bước này không:
“Mở công cụ phpMyAdmin mà vpssim đã cài đặt trên VPS trong bước cài đặt VPSSIM. Thực hiện import file sql chứa cơ sở dữ liệu.”
Em ko cách nào vào được phpMyAdmin để import file sql cả.
Thientvse says
Bạn cho mình hỏi lúc mình chuyển xong, khi update các plugin hoặc cài mới thì bị lỗi : Installation failed: Could not create directory. Lỗi này khắc phục như thế nào bạn nhỉ? Xin cảm ơn.
Nguyễn Văn Kỷ says
hay cám ơn a
Nguyễn Văn Thịnh says
Mình nghĩ lỗi này do website không có quyền tạo thư mục với vpssim bạn có thể sử dụng chức fix permission còn nếu không dùng thì bạn google tìm câu lệnh cấp quyền của nginx gì đấy mình không biết nhiều về cái này.
Truong says
Nhớ chọn chức năng Auto Renew Certificate để chứng chỉ được tự động gia hạn sau 90 ngày.
Phần này mình tìm ko thấy nhỉ?
Nam says
‘Hi Anh Thịnh,
Khi làm bước này e chỉ thấy nó yêu cầu tạo mới user + pass thôi anh: “Tiếp theo bạn chỉ nhập vào tên database, user và mật khẩu cho khớp với thông tin trong file wp-config.php của website bạn đang move sang VPS”
Làm sao để nó cập nhật dữ liệu database mình đã upload lên vậy anh.
Nam Le Quy says
hay lắm, hệ thống comment thật tuyệt
Nguyễn Văn Thịnh says
Thử một cách khác: Chọn mục 4> Database Manage trong menu VPSSIm sau đó chọn 6 restore database nó sẽ hỏi tên database mình định khôi phục. Nói chung cứ làm theo hướng dẫn của tool.