Nếu như một WordPress Theme không có chức năng hiển thị bài viết liên quan (Related Posts) nhưng các bạn không biết nhiều về code thì hãy dùng những plugin hỗ trợ tạo bài viết liên quan như mình nói ở bài viết Plugin thêm bài viết liên quan vào bài viết cho blog WordPress. Bài viết này mình sẽ chia sẽ cho các bạn cách tạo Hướng dẫn tạo Related Posts và giữa bài viết cho WordPress.
Thường thì bạn thấy tại các website tin tức, website báo điện tử có hiển thị các bài viết liên quan ngay giữa nội dung bài viết, bạn có bao giờ hỏi là làm sao để chèn đúng vị trí ở mỗi bài viết, tự động hay thủ công. Thật ra nếu bạn bỏ tí công cức ra chèn vài bài viết liên quan trong một bài viết mới thì hoàn toàn có thể, nhưng nếu bạn muốn nó tự động thêm vào một vị trí nhất định nào đó trong bài viết, hãy xem phần hướng dẫn dưới đây.
Cách chèn Related Posts và giữa bài viết cho WordPress
Đầu tiên bạn cần cài thêm plugin Related Posts by Taxonomy, chúng ta sẽ sử dụng plugin này để tạo bài viết liên quan, sau đó dùng cách sau đây để chèn bài viết liên quan vào bất cứ vị trí nào bạn muốn.
Nguyên tắt hoạt động của công việc này là chúng ta tạo ra một chức năng đếm số dòng trong văn bản dựa vào thẻ <p> và thêm bài viết liên quan vào một vị trí thử <p> thứ x nào đó. Đơn giản vì trong trình soạn thảo của WordPress, khi bạn Enter xuống dòng, mặc định đó là một thẻ <p>.
Để làm việc này, chúng ta tạo ra một hàm đếm số dòng có tham số như sau (thêm vào file functions.php:
count_paragraph($nội-dung-cần-chèn, $vị-trí, $content);
Để cho hàm này có thể làm việc, chúng ta định nghĩ hàm:
function count_paragraph( $insertion, $paragraph_id, $content ) { $closing_p = '</p>'; $paragraphs = explode( $closing_p, $content ); foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( $paragraph_id == $index + 1 ) { $paragraphs[$index] .= $insertion; } }
return implode( '', $paragraphs ); }
Chèn bài viết liên quan vào giữa nội dung:
add_filter( 'the_content', 'prefix_insert_post_ads' ); function prefix_insert_post_ads( $content ) { $related_posts= do_shortcode(''); if ( is_single() ) { return count_paragraph( $related_posts, 1, $content ); } return $content; }
# Toàn bộ code của chúng ta cần thêm vào file functions.php như sau:
function count_paragraph( $insertion, $paragraph_id, $content ) { $closing_p = '</p>'; $paragraphs = explode( $closing_p, $content ); foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( $paragraph_id == $index + 1 ) { $paragraphs[$index] .= $insertion; } } return implode( '', $paragraphs ); }
add_filter( 'the_content', 'prefix_insert_post_ads' ); function prefix_insert_post_ads( $content ) { $related_posts= do_shortcode(''); if ( is_single() ) { return count_paragraph( $related_posts, 1, $content ); } return $content; }
Nếu muốn định dạng lại bài viết liên quan với css, chúng ta cần thay đổi đoạn:
$related_posts= do_shortcode('');
thành:
$related_posts= "<div class='meta-related'>".do_shortcode('')."</div>";
Sau đó vào file style.css để thêm CSS tùy ý cho class meta-related
Chỉ cần những bước đơn giản giản trên, bạn có thể tự thêm bài viết liên quan vào giữa nội dung một bài viết bất kỳ mà không cần dùng tới plugin. Chúc các bạn thành công.