Trong bài viết này tôi sẽ hướng dẫn các bạn lấy ra và sử dụng thông tin bài viết trong wordpress qua ví dụ thực tế.
Cách lấy thông tin bài viết
Thông thường, có 2 cách để lấy danh sách bài viết:
Hàm get_posts()
Hàm get_posts($args) chứa các tham số chính:
<?php $args = array( 'posts_per_page' =>5, // số bài viết 'offset' => 0, 'category' => '', // danh mục 'category_name' => '', // tên danh mục 'orderby' => 'date', // thứ tự 'order' => 'DESC', // sắp xếp 'include' => '', 'exclude' => '', 'meta_key' => '', 'meta_value' => '', 'post_type' => 'post', // dạng post 'post_mime_type' => '', 'post_parent' => '', 'post_status' => 'publish', //trạng thái 'suppress_filters' => true ); $posts_array = get_posts( $args );
Trong đó các tham số chính hay sử dụng:
- posts_per_page: Số bài viết muốn lấy ra
- offset: Số bài viết bỏ qua. ví dụ có 10 bài viết, bạn posts_per_page => 5 Sẽ lấy ra từ bài số 1 đến số 5. offset => 1. lấy ra bài viết từ 2 đến 6
- orderby: chủ yếu dùng các tham số sau: sắp xếp theo ngày “date“, ngẫu nhiên “rand“, theo id bài viết “id“, theo ngày cập nhập bài viết “modified“, số lượng comment “comment_count“
- category hoặc category_name: category_name: tên của danh mục, hoặc category: id của danh mục.
- post_type: mặc định sẽ lấy bài vết “post“. ngoài ra có các lựa chọn khác như trang “page“, sản phẩm “product” hoặc post_type tự định nghĩa của bạn.
Sử dụng WP_Query
Sử dụng WP_Query cơ bản sẽ giống get_posts() nhưng nhiều tham số hơn, có thể sử dụng vào nhiều việc hơn. chả hạn như lấy bài viết ngẫu nhiên trong tuần, trong tháng , lấy bài viết theo tháng…
Thông tin bạn có thể xem tại đây nguồn github đầy đủ về tham số trong WP_Query.
Sử dụng thông tin như thế nào
Sau khi lấy được thông tin từ các bài viết. việc tiếp theo là sử dụng chúng. Thông thường sẽ được sử dụng để truyền đạt đến người dùng.Bạn có thể lấy bài viết và hiển thị ra như thế nào tùy thuộc vào mục đích của ban. 1 số ví dụ:
Hiển thị danh sách 10 bài viết mới nhất:
<ul> <?php $args = array( 'posts_per_page' => 10 ); $myposts = get_posts( $args ); foreach ( $myposts as $post ) : setup_postdata( $post ); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endforeach; wp_reset_postdata();?> </ul>
Hiển thị danh sách 5 bài viết có category tên “Sự kiện”
<?php $args = [ 'posts_per_page' => 5, 'category_name' => 'Sự kiện' ] $the_query = new WP_Query( $args ); echo '<ul>'; if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> endwhile; endif; wp_reset_postdata(); echo "</ul>"