Related posts không cần plugin WordPress

Giới thiệu về bài viết liên quan trong WordPress
Bài viết liên quan (Related Posts) là một tính năng quan trọng trên hầu hết các trang web và blog, đặc biệt là trên nền tảng WordPress. Chúng giúp người đọc khám phá thêm nội dung mà họ có thể quan tâm, từ đó tăng thời gian ở lại trên trang, giảm tỷ lệ thoát trang và cải thiện SEO. Thay vì chỉ đọc một bài viết duy nhất, người đọc có thể dễ dàng tìm thấy các bài viết khác có liên quan, tạo ra một trải nghiệm duyệt web liền mạch và hấp dẫn.
Có nhiều cách để thêm tính năng bài viết liên quan vào trang web WordPress của bạn. Phổ biến nhất là sử dụng các plugin chuyên dụng. Tuy nhiên, việc cài đặt quá nhiều plugin có thể làm chậm tốc độ tải trang và gây ra xung đột. May mắn thay, có một số phương pháp để hiển thị bài viết liên quan mà không cần đến plugin, giúp bạn duy trì hiệu suất trang web tối ưu.
Tại sao nên cân nhắc việc hiển thị bài viết liên quan không cần plugin?
Sử dụng plugin để thêm các tính năng vào WordPress rất tiện lợi, nhưng đôi khi việc dựa dẫm quá nhiều vào chúng có thể gây ra những vấn đề không mong muốn. Dưới đây là một số lý do tại sao bạn nên cân nhắc việc hiển thị bài viết liên quan mà không cần plugin:
- Tăng tốc độ tải trang: Mỗi plugin đều thêm một lượng mã nhất định vào trang web của bạn. Quá nhiều plugin có thể làm chậm tốc độ tải trang, ảnh hưởng đến trải nghiệm người dùng và SEO.
- Giảm xung đột plugin: Các plugin khác nhau có thể xung đột với nhau, gây ra lỗi và làm hỏng trang web của bạn. Việc giảm số lượng plugin sẽ giảm thiểu nguy cơ này.
- Kiểm soát tốt hơn: Khi tự mình triển khai tính năng bài viết liên quan, bạn có thể kiểm soát hoàn toàn cách nó hoạt động và hiển thị, thay vì phải phụ thuộc vào các tùy chọn có sẵn của plugin.
Các phương pháp hiển thị bài viết liên quan không cần plugin
Có một số phương pháp để hiển thị bài viết liên quan mà không cần sử dụng plugin. Dưới đây là hai phương pháp phổ biến nhất:
1. Sử dụng mã tùy chỉnh (Custom Code) trong functions.php
Phương pháp này liên quan đến việc thêm một đoạn mã tùy chỉnh vào file `functions.php` của theme WordPress của bạn. Phương pháp này đòi hỏi bạn phải có một chút kiến thức về PHP và HTML.
Ưu điểm:
- Hoàn toàn miễn phí: Không tốn bất kỳ chi phí nào.
- Tùy biến cao: Bạn có thể tùy chỉnh mã để phù hợp với thiết kế và nhu cầu của trang web của mình.
- Không làm chậm trang web: Mã được tích hợp trực tiếp vào theme, giảm thiểu ảnh hưởng đến tốc độ tải trang.
Nhược điểm:
- Yêu cầu kiến thức về PHP: Bạn cần có kiến thức về PHP để chỉnh sửa mã.
- Có thể gây lỗi: Nếu mã không được viết đúng cách, nó có thể gây ra lỗi cho trang web của bạn.
- Khó bảo trì: Nếu bạn không có kinh nghiệm, việc bảo trì và cập nhật mã có thể gặp khó khăn.
Ví dụ về mã PHP (chèn vào `functions.php`):
“`php
ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
‘tag__in’ => $tag_ids,
‘post__not_in’ => array($post->ID),
‘posts_per_page’=>5, // Số lượng bài viết liên quan hiển thị
‘caller_get_posts’=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo ‘
‘;
}
}
}
add_action( ‘wp_footer’, ‘related_posts’ );
?>
“`
Giải thích mã:
- `related_posts()`: Định nghĩa một hàm để hiển thị các bài viết liên quan.
- `global $post;`: Truy cập biến `$post` toàn cục chứa thông tin về bài viết hiện tại.
- `wp_get_post_tags($post->ID);`: Lấy danh sách các thẻ (tags) của bài viết hiện tại.
- `$args`: Định nghĩa các tham số cho truy vấn WordPress để tìm các bài viết liên quan.
- `tag__in`: Chỉ lấy các bài viết có cùng thẻ với bài viết hiện tại.
- `post__not_in`: Loại trừ bài viết hiện tại khỏi danh sách kết quả.
- `posts_per_page`: Số lượng bài viết liên quan cần hiển thị.
- `wp_query($args)`: Thực hiện truy vấn WordPress với các tham số đã định nghĩa.
- Vòng lặp `while`: Lặp qua danh sách các bài viết liên quan và hiển thị chúng dưới dạng danh sách liên kết.
- `add_action( ‘wp_footer’, ‘related_posts’ );`: Thêm hàm `related_posts` vào hook `wp_footer`, có nghĩa là hàm này sẽ được thực thi khi chân trang (footer) được tải.
Cách sử dụng:
- Sao chép đoạn mã PHP trên.
- Truy cập vào Dashboard WordPress của bạn.
- Chọn “Appearance” -> “Theme Editor”.
- Tìm và chọn file `functions.php` của theme đang sử dụng.
- Dán đoạn mã vào cuối file `functions.php`.
- Nhấn nút “Update File”.
- Bạn có thể cần thêm CSS vào file `style.css` của theme để định dạng cho phần bài viết liên quan.
2. Sử dụng trường tùy chỉnh (Custom Fields) và truy vấn WordPress
Phương pháp này phức tạp hơn một chút so với phương pháp trước, nhưng nó cung cấp sự linh hoạt cao hơn trong việc xác định các bài viết liên quan. Thay vì chỉ dựa vào thẻ, bạn có thể sử dụng các trường tùy chỉnh để liên kết các bài viết một cách thủ công.
Ưu điểm:
- Kiểm soát hoàn toàn: Bạn có thể chọn chính xác những bài viết nào được hiển thị là liên quan.
- Linh hoạt: Bạn có thể sử dụng trường tùy chỉnh để liên kết các bài viết dựa trên bất kỳ tiêu chí nào, không chỉ thẻ.
Nhược điểm:
- Tốn thời gian: Bạn cần phải liên kết các bài viết một cách thủ công.
- Yêu cầu kiến thức về PHP: Bạn cần có kiến thức về PHP để truy vấn và hiển thị các bài viết liên quan.
Các bước thực hiện:
- Tạo trường tùy chỉnh: Sử dụng plugin Advanced Custom Fields (ACF) hoặc các plugin tương tự để tạo một trường tùy chỉnh (ví dụ: “related_posts”) kiểu “Relationship”. Trường này sẽ cho phép bạn chọn các bài viết liên quan từ danh sách các bài viết đã đăng.
- Thêm dữ liệu vào trường tùy chỉnh: Chỉnh sửa từng bài viết và chọn các bài viết liên quan trong trường tùy chỉnh “related_posts”.
- Hiển thị bài viết liên quan: Thêm đoạn mã PHP sau vào file `single.php` (hoặc bất kỳ template nào bạn muốn hiển thị bài viết liên quan):
Ví dụ về mã PHP (chèn vào `single.php`):
“`php
“`
Giải thích mã:
- `get_field(‘related_posts’)`: Lấy giá trị của trường tùy chỉnh có tên là ‘related_posts’. Giá trị này là một mảng chứa ID của các bài viết liên quan đã được chọn.
- `foreach( $related_posts as $post )`: Lặp qua mảng các ID bài viết liên quan.
- `setup_postdata($post)`: Thiết lập đối tượng bài viết toàn cục `$post` để các hàm WordPress (như `the_permalink()` và `the_title()`) có thể hoạt động chính xác.
- `the_permalink()`: Hiển thị URL của bài viết liên quan.
- `the_title()`: Hiển thị tiêu đề của bài viết liên quan.
- `wp_reset_postdata()`: Khôi phục đối tượng bài viết toàn cục `$post` về trạng thái ban đầu để tránh xung đột với các phần khác của trang web.
Kết luận
Hiển thị bài viết liên quan là một cách tuyệt vời để cải thiện trải nghiệm người dùng và tăng hiệu quả SEO cho trang web WordPress của bạn. Mặc dù các plugin cung cấp một giải pháp nhanh chóng và dễ dàng, nhưng việc triển khai tính năng này mà không cần plugin có thể giúp bạn tối ưu hóa tốc độ tải trang, giảm xung đột và kiểm soát tốt hơn. Tùy thuộc vào kỹ năng và nhu cầu của bạn, bạn có thể chọn một trong hai phương pháp được trình bày ở trên để thêm tính năng bài viết liên quan vào trang web của mình.
Hãy nhớ luôn sao lưu trang web của bạn trước khi thực hiện bất kỳ thay đổi nào đối với file `functions.php` hoặc các template theme. Nếu bạn không chắc chắn về bất kỳ bước nào, hãy tìm kiếm sự trợ giúp từ một nhà phát triển WordPress có kinh nghiệm.