Cách thêm nội dung và hoàn toàn thao tác với nguồn cấp dữ liệu RSS WordPress của bạn
Một thời gian trước, chúng tôi đã chia sẻ cách bạn có thể kiểm soát WordPress RSS Footer của mình bằng cách sử dụng một plugin nổi tiếng có tên là RSS Footer của Joost. Mặc dù plugin rất tuyệt, nhưng nó rất hạn chế. Bạn chỉ có thể thêm văn bản vào chân trang và nó luôn là văn bản giống nhau được hiển thị trên chân trang của mỗi bài đăng. Điều gì xảy ra nếu bạn muốn hiển thị văn bản khác nhau cho mỗi bài đăng trong bài đăng RSS của mình? Điều gì xảy ra nếu bạn muốn các bài đăng cụ thể có tiêu đề khác trong Nguồn cấp dữ liệu RSS? Điều gì xảy ra nếu bạn muốn hiển thị một trường tùy chỉnh cụ thể trong Nguồn cấp dữ liệu RSS của mình? Đây là lý do tại sao chúng tôi giới thiệu cho bạn bài viết này sẽ hướng dẫn bạn cách thêm bất kỳ loại nội dung nào vào Nguồn cấp dữ liệu RSS WordPress của bạn. Bản hack này sẽ giúp bạn kiểm soát Nguồn cấp dữ liệu RSS WordPress của mình và bạn có thể thao tác nó theo cách nào bạn muốn.
Lưu ý: Bản hack này không dành cho người mới bắt đầu. Chỉ những người dùng cảm thấy thoải mái với việc chỉnh sửa tệp functions.php và có một số kiến thức về php mới nên thử cách này. Người dùng mới bắt đầu nên sử dụng plugin được đề cập trong bài viết ở trên hoặc tham khảo ý kiến của các chuyên gia như chúng tôi để làm điều đó cho bạn.
1. Thêm Trường tùy chỉnh vào Chân trang RSS WordPress của bạn
Trong ví dụ đầu tiên này, chúng tôi sẽ chỉ cho bạn cách bạn có thể sử dụng trường tùy chỉnh để hiển thị văn bản / đối tượng cụ thể trong Nguồn cấp dữ liệu RSS WordPress của bạn. Thủ thuật này sẽ cho phép bạn hiển thị văn bản, quảng cáo, hình ảnh hoặc bất kỳ thứ gì khác cho mỗi bài đăng. Đầu tiên hãy mở functions.php của bạn và dán các mã sau vào các thẻ php:
function wpbeginner_postrss($content) { global $wp_query; $postid = $wp_query->post->ID; $coolcustom = get_post_meta($postid, 'coolcustom', true); if(is_feed()) { if($coolcustom !== '') { $content = $content." ".$coolcustom." "; } else { $content = $content; } } return $content; } add_filter('the_excerpt_rss', 'wpbeginner_postrss'); add_filter('the_content', 'wpbeginner_postrss');
Bây giờ hầu hết các bạn đang thắc mắc mã này hoạt động như thế nào. Vì vậy, đây là một lời giải thích. Chúng tôi tạo một hàm có tên wpbeginner_postrss chạy wp_query toàn cục để tìm kiếm trong mỗi bài đăng nếu trường tùy chỉnh có tên “coolcustom” được xác định. Nếu Cool Custom được xác định thì nó sẽ hiển thị giá trị sau nội dung bài đăng. Nếu không có trường tùy chỉnh nào được xác định, thì hàm theo mặc định chỉ hiển thị nội dung bài đăng và không có gì khác. Chúng tôi sử dụng biến $ content để hiển thị nội dung. Chúng tôi đang sử dụng hàm if (is_feed) và thêm văn bản tùy chỉnh hoặc nội dung khác vào chính nội dung bài đăng chính mà bạn có thể thấy bằng bộ lọc thứ hai. Nhưng nó sẽ chỉ được hiển thị trong Nguồn cấp RSS do người dùng của chúng tôi sử dụng hàm if (is_feed). Bằng cách làm theo cách này, chúng tôi tránh được tất cả các vấn đề về tính tương thích.
Một số bạn sẽ nói nhưng bạn chỉ làm những gì plugin chân trang RSS làm với một chức năng. Có và không. Có, chúng tôi đang thêm mã ở chân trang của bài đăng, nhưng văn bản này không phải là văn bản chính xác giống nhau cho mỗi bài đăng. Nó khác nhau vì bạn chỉ định văn bản khác nhau cho mỗi bài đăng thông qua các trường tùy chỉnh. Thủ thuật này sẽ rất hữu ích để tuân thủ các nguyên tắc FTC mới cho các blog có tất cả các loại bài đăng khác nhau.
2. Thêm Văn bản Bổ sung vào Tiêu đề Bài đăng trong RSS
Blog của bạn có bài đăng của khách, bài đăng được tài trợ và bài đánh giá không? Nếu bạn làm vậy thì bạn sẽ thấy điều này rất hữu ích. Một số blogger có kiểu tùy chỉnh để hiển thị từng loại bài đăng khác nhau, vì vậy người dùng của họ có thể phân biệt giữa chúng. Nhưng khi những bài viết này đến tay người đọc, tất cả các phong cách đều biến mất. Đó là khi thủ thuật này có ích. Trong thủ thuật này, chúng tôi sẽ thêm bất kỳ văn bản nào vào trước hoặc sau tiêu đề.
Ví dụ: nếu tiêu đề của bạn là “Chủ đề WordPress thương mại – StudioPress” và đó là một bài đăng được tài trợ, thì bạn có thể thay đổi nó thành “Bài đăng được tài trợ: Chủ đề WordPress thương mại – StudioPress ”. Tương tự nếu ai đó đã viết một bài đăng của khách, v.v.
Để thực hiện điều này, hãy mở tệp functions.php của bạn và thêm mã sau vào đó:
function wpbeginner_titlerss($content) { global $wp_query; $postid = $wp_query->post->ID; $gpost = get_post_meta($postid, 'guest_post', true); $spost = get_post_meta($postid, 'sponsored_post', true); if($gpost !== '') { $content="Guest Post: ".$content; } elseif ($spost !== ''){ $content="Sponsored Post: ".$content; } else { $content = $content; } return $content; } add_filter('the_title_rss', 'wpbeginner_titlerss');
Giải thích cho mã:
Chúng tôi đang sử dụng hàm có tên wpbeginner_titlerss chạy một wp_query toàn cục để tìm kiếm trong mỗi bài đăng nếu nó chứa $ gpost hoặc $ spost. Hai yếu tố này về cơ bản đang tìm kiếm hai trường tùy chỉnh cụ thể được gọi là “guest_post” hoặc “Managed_post”. Nếu bất kỳ ai đã thêm các trường tùy chỉnh này với giá trị true, thì mã sẽ thêm giá trị đó vào văn bản. Nếu không thì bạn sẽ chỉ thấy tiêu đề bình thường. Trước tiên, bạn có thể thấy mã tìm kiếm xem $ gpost có đúng không, nếu điều đó không đúng thì liệu $ spost có đúng không. Nếu điều đó cũng không được xác định, thì nó sẽ hiển thị nội dung bình thường. Nhưng nếu một trong hai đúng, thì nó sẽ hiển thị văn bản khác mà bạn chỉ định ở đây. Chúng tôi đang sử dụng chuỗi nội dung $ để hiển thị tiêu đề bài đăng.
Bây giờ nó chỉ hiển thị các trường tùy chỉnh trong tiêu đề. Bạn có muốn hiển thị tên Category trên mỗi tiêu đề không? Vậy thì bạn chỉ cần dán đoạn mã sau vào tệp functions.php của mình:
function wpbeginner_cattitlerss($content) { $postcat = ""; foreach((get_the_category()) as $cat) { $postcat .= ' ('.$cat->cat_name . ')'; } $content = $content.$postcat; return $content; } add_filter('the_title_rss', 'wpbeginner_cattitlerss');
Giải thích: Chúng tôi đang sử dụng hàm wpbgeinner_cattitlerss để lấy ID danh mục cho mỗi bài đăng và sau đó hiển thị ID đó ngay bên cạnh tiêu đề. Vì vậy, nếu tiêu đề là “Nhận Biểu mẫu liên hệ 7” thì bây giờ nó sẽ là “Nhận Biểu mẫu liên hệ 7 [Plugins]”. Bạn có thể thấy rằng không có biến if then trong mã này. Chúng tôi sử dụng $ content cho tiêu đề chính và biến $ postcat để xác định tên danh mục. Bạn sắp xếp lại nếu bạn thích.
3. Thêm cùng một văn bản trên tất cả các bài đăng trong RSS
Nếu bạn chỉ muốn thêm cùng một văn bản thì bạn cũng có thể sử dụng plugin có tên là RSS Footer của Joost vì nó dễ dàng hơn. Nhưng nếu bạn muốn tự mình làm thì đây là cách bạn làm. Mở tệp functions.php của bạn, thêm mã sau:
function wpbeginner_postrss($content) { if(is_feed()){ $content="This post was written by Syed Balkhi ".$content.'Check out WPBeginner'; } return $content; } add_filter('the_excerpt_rss', 'wpbeginner_postrss'); add_filter('the_content', 'wpbeginner_postrss');
Giải thích: Chúng tôi đang gọi một hàm wpbeginner_postrss để thêm vào mỗi bài đăng một nội dung trước bài đăng nói rằng Bài này được viết bởi Syed Balkhi và sau khi nội dung đó, hãy xem WPBeginner. Nhưng chúng tôi thêm hàm if (is_feed), vì vậy nó sẽ chỉ được hiển thị trong Nguồn cấp RSS.
Điều này sẽ rất hữu ích nếu bạn muốn bán quảng cáo trên các bài đăng cụ thể trong RSS, thêm các nguyên tắc FTC tùy chỉnh hoặc chỉ muốn có nhiều quyền kiểm soát hơn đối với Nguồn cấp RSS của mình.
Nguồn: Chúng tôi đã sử dụng plugin RSS Footer của Joost cho rất nhiều hướng dẫn khi viết hướng dẫn này. Phần hack RSS tiêu đề mà chúng tôi nhận được từ một trang web hướng dẫn của Pháp và chúng tôi đã thêm các biến của riêng mình và cung cấp cho nó khả năng trở thành tiêu đề tùy chỉnh cho mỗi trường tùy chỉnh.