Trong một vài trường hợp bạn cần lấy các bài viết “Trước” hoặc “Sau” một bài viết chỉ định bằng cách Query trong WordPress, cụ thể ở đây ta có $post_id
Ví dụ ta có $post_id = 5, bạn cần lấy 5 bài viết cũ hơn ( bài viết trước ). Hay khi chúng ta cần lấy 5 bài viết mới hơn ( bài viết sau ) như hình bên dưới.
1. Query các bài viết cũ hơn bài viết chỉ định
$obj_post = get_post($post_id); $post_date = $obj_post->post_date; $args_filter = array( 'post_type' => array('post'), //Có thể thay đổi bằng các loại Post_type khác 'post_status' => 'publish', 'posts_per_page' => 5 , 'orderby' => 'date', 'order' => 'desc', 'date_query' => array( array( 'before' => $post_date, ), ) ); $the_query = new WP_query($args_filter);
2. Query các bài viết mới hơn bài viết chỉ định
$obj_post = get_post($post_id); $post_date = $obj_post->post_date; $args_filter = array( 'post_type' => array('post'), /Có thể thay đổi bằng các loại Post_type khác 'post_status' => 'publish', 'posts_per_page' => 5 , 'orderby' => 'date', 'order' => 'asc', 'date_query' => array( array( 'after' => $post_date, ), ) ); $the_query = new WP_query($args_filter);
3. Hiển thị kết quả từ Query bằng vòng lặp loop
if ( $the_query->have_posts() ) : while( $the_query->have_posts() ): $the_query->the_post(); the_title(); endwhile; endif; wp_reset_postdata();
Như vậy bằng cách sử dụng thuộc tính date_query của Query ta đã giải quyết được vấn đề rồi phải không.