Trở về

Hiển thị bài viết liên quan bởi Tác giả (author) trong WordPress

bởi Vi Nè

Hiển thị bài viết liên quan đến chủ đề nội dung Post trong WordPress là việc làm cần thiết để các bạn dễ dàng kéo khách ở lại website của mình lâu hơn và hiển thị được nhiều nội dung hơn cho khách truy cập web có thể tiếp cận và lựa chọn.

Thông thường các bạn hay chọn các hiển thị bài viết mới nhất trong WordPress, hoặc hiển thị bài viết được xem nhiều nhất, thâm chí một số các bạn còn tùy chọn hiển thị bài viết theo mới nhất trong WordPress theo danh mục Category hoặc hiển thị bài viết liên quan theo Tags thẻ của bài viết.

Đối với một số website có nhiều tác giả, thì việc hiển thị bài viết liên quan theo tác giả, bài viết cùng một tác giả cũng là một lựa chọn thú vị. Dưới đây mình xin giới thiệu đến các bạn một số Cách hiển thị bài viết liên quan bởi Tác giả (author) trong WordPress.

1. Dùng Plugin

Cách tốt nhất là dùng plugin “Similar Posts – Best Related Posts Plugin for WordPress” đây là một plugin tổng hợp tất cả các cách hiển thị bài viết, bạn có thể lựa chọn bài viết mới nhất, bài viết theo tác giả, bài viết theo Tags, bài viết theo Danh mục Category.

Nếu bạn không phải là một coder và mong muốn sử dụng nó một cách dễ dàng chúng tôi khuyên bạn nên sử dụng plugin này.

Bạn có thể Login vào admin Dashboard của bạn và vào phần Gói mở rộng tiếp theo vào phần cài mới. Trong mục tìm kiếm plugin bạn gõ “Similar Posts” sẽ hiển thị như hình và cài đặt như bình thường. Hoặc tải tại đây

Đối với một số bạn biết code và muốn tối ưu và sửa theo ý mình thì các bạn dễ dàng có thể dùng các cách sau mà không cần dùng đến plugin

2. Không dùng Plugin

Để áp dụng cách này, bạn chắc chắn mình đã hiểu code, nếu không hãy backup lại file bạn chuẩn bị sửa và “mò” chúng từ từ.

Các bạn dùng editor như Sublime Text và mở file functions.php trong theme của bạn và thêm dòng code sau

function wpb_related_author_posts($content) {
 
if (is_single()) {
global $authordata, $post;
 
$content .= '<h4>Similar Posts by The Author:</h4> ';
 
$authors_posts = get_posts( array( 'author' => $authordata->ID, 'post__not_in' => array( $post->ID ), 'posts_per_page' => 5 ) );
 
$content .= '<ul>';
foreach ( $authors_posts as $authors_post ) {
$content .= '<li><a href="' . get_permalink( $authors_post->ID ) . '">' . apply_filters( 'the_title', $authors_post->post_title, $authors_post->ID ) . '</a></li>';
}
$content .= '</ul>';
 
return $content;
}
else {
return $content;
}
}
 
add_filter('the_content','wpb_related_author_posts');

Cách hiển thị này cho phép bạn hiển thị bài viết liên quan đến chủ để bài viết cùng tác giả ngay sau phần nội dung bài viết, bạn cóp thể dễ dàng thay đổi tham số posts_per_page để lấy số lượng bài viết.

Nếu bạn muốn hiện thị bài viết trong theme của bạn ở vị trí mong muốn bạn có thể dùng với đoạn code sau trong functions.php

function</span><span class="pln"> get_related_author_posts</span><span class="pun">()</span> <span class="pun">{</span><span class="pln">
</span><span class="kwd">global</span><span class="pln"> $authordata</span><span class="pun">,</span><span class="pln"> $post</span><span class="pun">;</span><span class="pln">
$authors_posts </span><span class="pun">=</span><span class="pln"> get_posts</span><span class="pun">(</span><span class="pln"> array</span><span class="pun">(</span> <span class="str">'author'</span> <span class="pun">=></span><span class="pln"> $authordata</span><span class="pun">-></span><span class="pln">ID</span><span class="pun">,</span> <span class="str">'post__not_in'</span> <span class="pun">=></span><span class="pln"> array</span><span class="pun">(</span><span class="pln"> $post</span><span class="pun">-></span><span class="pln">ID </span><span class="pun">),</span> <span class="str">'posts_per_page'</span> <span class="pun">=></span> <span class="lit">5</span> <span class="pun">)</span> <span class="pun">);</span><span class="pln">
$output </span><span class="pun">=</span> <span class="str">'<ul>'</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">foreach</span> <span class="pun">(</span><span class="pln"> $authors_posts </span><span class="kwd">as</span><span class="pln"> $authors_post </span><span class="pun">)</span> <span class="pun">{</span><span class="pln">
$output </span><span class="pun">.=</span> <span class="str">'<li><a href="'</span> <span class="pun">.</span><span class="pln"> get_permalink</span><span class="pun">(</span><span class="pln"> $authors_post</span><span class="pun">-></span><span class="pln">ID </span><span class="pun">)</span> <span class="pun">.</span> <span class="str">'">'</span> <span class="pun">.</span><span class="pln"> apply_filters</span><span class="pun">(</span> <span class="str">'the_title'</span><span class="pun">,</span><span class="pln"> $authors_post</span><span class="pun">-></span><span class="pln">post_title</span><span class="pun">,</span><span class="pln"> $authors_post</span><span class="pun">-></span><span class="pln">ID </span><span class="pun">)</span> <span class="pun">.</span> <span class="str">'</a></li>'</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
$output </span><span class="pun">.=</span> <span class="str">'</ul>'</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> $output</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}

Với cách này các bạn tiếp tục đặt functions này vào vị trí mong muốn trong file single.php

<?</span><span class="embsrc"><span class="pln">php echo get_related_author_posts</span><span class="pun">();</span> </span><span class="tag">?>

Lời khuyên dành cho các bạn là nên chọn cách thứ 2, nó sẽ giảm bớt gánh nặng cho site và tối ưu site tốt hơn.

Chúng tôi tạm dừng chức năng bình luận, mọi thắc mắc vui lòng gửi thông qua mục liên hệ. Xin cám ơn!