×

Code hiển thị bài viết ngẫu nhiên gần đây trong WordPress

Dưới đây mình chia sẻ cho các bạn một đoạn code ngắn gọn có chức năng hiển thị bài viết ngẫu nhiên và gần đây nhất. Ngoài khả năng hiển thị bài viết ngẫu nhiên, nó còn có chức năng tạo bộ lọc để chỉ hiển thị những bài viết mới nhất mà thôi.
Ví dụ: Hiển thị 10 bài viết ngẫu nhiên trong số 60 bài viết mới nhất.

Code hiển thị bài viết ngẫu nhiên gần đây nhất

Đầu tiên các bạn cần sao chép đoạn code bộ lọc bên dưới dán vào file funcition.php trong thư mục theme mà bạn đang sử dụng.

function wpse260713_randomize_posts( $sql_query, $query ) {
$rand = (int) $query->get( '_randomize_posts_count' );
if( $rand ) {
$found_rows = '';
if( stripos( $sql_query, 'SQL_CALC_FOUND_ROWS' ) !== FALSE ) {
$found_rows = 'SQL_CALC_FOUND_ROWS';
$sql_query = str_replace( 'SQL_CALC_FOUND_ROWS ', '', $sql_query );
}
$sql_query = sprintf( 'SELECT %s wp_posts.* from ( %s ) wp_posts ORDER BY rand() LIMIT %d', $found_rows, $sql_query, $rand );
}
return $sql_query;
}
add_filter( 'posts_request', 'wpse260713_randomize_posts', 10, 2 );

Đoạn code bên dưới có chức năng hiển thị bài viết ngẫu nhiên và gây đây nhất (Bạn có thể đặt nó vào bất kỳ vị trí nào mà bạn muốn hiển thị, nhớ bổ sung thêm css vào cho lung linh nữa nhé).

<?php $owl = new WP_Query(array( 
'post_type' => 'post',
'posts_per_page' => 60,
'orderby' => 'date',
'order' => 'DESC',
'meta_key' => '_thumbnail_id',
'no_found_rows' => 'true',
'_randomize_posts_count' => 10
));
?>
<?php $i = 0; while ($owl->have_posts()) : $owl->the_post(); ?>
<div class="ganday">
<div>
<a href="<?php the_permalink(); ?>"><img class="image" src="<?php echo get_the_post_thumbnail_url (); ?>" /></a>
<div style="padding:10px;">
<div class="tieude"><h2 style="line-height:0.5"><a href="<?php the_permalink();?>"><?php echo wp_trim_words( get_the_title() , 14 ) ?></a></h2></div>
<div class="tacgia"><a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ), get_the_author_meta( 'user_nicename' ) ); ?>"><?php the_author(); ?></a></div>
<div class="noidungngan"><?php echo wp_trim_words( get_the_excerpt() , 10 ) ?></div>
</div>
</div>
</div>
<?php $i++; endwhile ; wp_reset_query() ;?>

Với đoạn code ở trên, sẽ hiển thị ra 10 bài viết ngẫu nhiên trong tổng số 60 bài viết mới nhất.
‘posts_per_page’ => 60 số lượng bài viết được lọc ra để hiển thị.
‘_randomize_posts_count’ => 10 số bài viết ngẫu nhiên sẽ được hiển thị ra trong số bài viết được lọc ra ở trên.

4891
"Nếu bạn cảm thấy bài viết này hữu ích, bạn có thể ủng hộ cho tác giả một tách Cafe"
THANH TOÁN ỦNG HỘ
Sacombank
NGUYEN NGOC HOAN
040086597979
Đọc thêm bài khác
×
Chia sẻ trang này tới

1 Bình luận
  1. Nhac San CÁO

    Chào bạn, bạn cho mình hỏi chút.
    Mình muốn chèn sản phẩm vào giữa bài viết thì dùng plugin hay có cách nào khác không?



Tham gia nhóm để săn mã VPS & Hosing
Tham gia nhóm để săn mã VPS & Hosing
Nhóm này được mình tạo ra nhằm giúp anh em tạo ra một sân chơi mới, để mọi người vừa chia sẻ, vừa trao đổi về các NCC hosting, VPS ngon và chất lượng
Gọi điệnMessengerZalo