Hướng dẫn get post trong wordpress và new wp_Query trong wordpress

Ngày đăng: 17 - 04 - 2020 Lượt xem: 6456 lượt

Chào các bạn, để tiếp nối chủ đề lập trình theme wordpress hôm nay chúng ta sẽ đi tìm hiểu cách get post trong wordpress cũng như là vòng lặp query post trong wordpress.

Đây được xem như là xương sống của wordpress. Chúng ta sẽ sử dụng xuyên suốt trong quá trình xây dựng theme wordpress.

Khi cài đặt wordpress lên, chúng ta sẽ thấy xuất hiện phần bài viết (posts), nơi đây chứa tất cả các bài viết của website. Vậy làm sao để hiển thị nội dung của các bài viết đó ra ngoài giao diện? Chúng ta sẽ sử dụng vòng lặp get post để đưa chúng ra 😀

Hướng dẫn get post trong wordpress

Vòng lặp get post trong wordpress

Cú pháp:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
   // Thông tin cần lấy của 1 bài viết
<?php endwhile;?>
<?php endif; ?>

Giải thích:

Đây là một vòng lặp while trong php thực hiện việc kiểm tra nếu có bài viết thì show ra.

Sử dụng:

Tùy theo vị trị đặt vòng lặp này mà nó sẽ trả về kết quả khác nhau, cụ thể như sau:

  • Đặt ở trang chủ (index.php) sẽ list danh sách các bài viết mới nhất
  • Đặt ở trang chuyên mục (category.php) sẽ hiển thị danh sách bài viết của chuyên mục đó
  • Đặt ở trang chi tiết (single.php) sẽ hiển thị nội dung của bài viết đó
  • Đặt ở trang kết quả tìm kiếm (search.php) nó sẽ hiển thị kết quả tìm kiếm của từ khóa tương ứng

Các thành phần của bài viết có thể hiển thị trong vòng lặp query:

  • <?php the_title(); ?> Lấy tiêu để của bài viết
  • <?php the_content(); ?> Lấy nội dung của bài viết
  • <?php the_excerpt(); ?> Lấy mô tả của bài viết
  • <?php the_category(); ?> Lấy chuyên mục của bài viết
  • <?php the_author(); ?> Lấy tác giả của bài viết
  • <?php the_post_thumbnail(); ?> Lấy hình đại diện của bài viết
  • <?php the_date(); ?> Lấy ngày xuất bản của bài viết
  • <?php the_permalink(); ?> Lấy đường dẫn của bài viết

Còn một số thành phần khác ít sử dụng mình không liệt kê hết ở đây được các bạn có thể search thêm nha.

Ví dụ:

Hiển thị danh sách bài viết mới nhất, có kèm hình đại diện và mô tả ngắn của bài viết:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
	<div class="post">
		<a href="<?php the_permalink(); ?>">
			<?php the_post_thumbnail(); ?>
		</a>
		<h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
		<div class="desc">
			<?php the_excerpt(); ?>
		</div>
	</div>		
<?php endwhile; else : ?>
<?php endif; ?>

Vòng lặp new WP_Query get bài viết với tham số

Ở phần trên chúng ta đã được biết cách query bài post mặc định của wordpress, nhưng đối với những yêu cầu cao hơn ví dụ như: Get bài viết với số lượng nhất định, get bài viết theo 1 chuyên mục hoặc get bài viết theo 1 tác giả… thì vòng lặp trên không thể đáp ứng.

Vì thế wordpress đã cung cấp cho chúng ta 1 vòng lặp lấy bài viết phụ thuộc vào tham số đó là new Wp_Query, cụ thể như sau:

Cú pháp new wp_Query:

<?php 
  $args = array(
    'posts_per_page' => -1,
    'post_type'      => 'post'
    'cat'            => 1
  );
  $the_query = new WP_Query( $args );
?>
<?php if( $the_query->have_posts() ): ?>
<?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
  // Thông tin cần lấy của 1 bài viết
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

Giải thích new wp_Query:

Cú pháp của vòng lặp này sẽ có 2 phần:

  • Phần 1 là array ($args) dữ liệu tham số
  • Phần 2 là phần get post bình thường như được truyền tham số phía trên vào để cho kết quả như mong muốn.

Các tham số đầu vào:

  • posts_per_page => Số lượng bài viết
  • post_type => là post_type ví dụ: post là bài viết, page là trang
  • cat => Id của chuyên mục cần lấy
  • p => id của bài viết cần lấy
  • post_status => Trạng thái của bài viết
  • author => id của tác giả

Còn rất nhiều tham số đầu vào mà trong nội dung của bài viết này mình không thể nhắc hết cho các bạn. Mình sẽ tổng hợp tất cả vào 1 file các bạn có thể download file này phía dưới nha!

Download code "Tất cả tham số của New Wp_Query"
Để download code vui lòng thực hiện các bước sau!
Bước 1: Like fan page của Kira:
Bước 2: Để lại email, hệ thống sẽ kiểm tra và gởi code về mail trong vòng 10 phút!
Bonus:
Lưu ý: Một số trường hợp mail sẽ gởi vào mục spam. Các bạn vui lòng check kỹ ạ!

Tham số get post trong wordpress

File tất cả các tham số của get post trong wordpress

Một số ví dụ:

Ví dụ 1: Lấy 10 bài viết mới nhất trong wordpress 

<?php 
  $args = array(
    'posts_per_page' => 10,
    'post_type'   => 'post',
    'post_status' => 'publish'
  );
  $the_query = new WP_Query( $args );
?>
<?php if( $the_query->have_posts() ): ?>
<?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
  // Thông tin cần lấy của 1 bài viết
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

Ví dụ 2: Lấy 5 bài viết của chuyên mục tin tức, giả sử chuyên mục tin tức có id là 1

<?php 
  $args = array(
    'posts_per_page'  => 5,
    'post_type'       => 'post',
    'post_status'     => 'publish',
    'cat'             => 1
  );
  $the_query = new WP_Query( $args );
?>
<?php if( $the_query->have_posts() ): ?>
<?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
  // Thông tin cần lấy của 1 bài viết
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

Ví dụ 3: Lấy 10 bài viết ngẫu nhiên trong wordpress

<?php 
  $args = array(
    'posts_per_page'  => 10,
    'post_type'       => 'post',
    'post_status'     => 'publish',
    'orderby'         => 'rand'
  );
  $the_query = new WP_Query( $args );
?>
<?php if( $the_query->have_posts() ): ?>
<?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
  // Thông tin cần lấy của 1 bài viết
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

Tổng kết:

Hôm này mình đã hướng dẫn cho các bạn cách get post trong wordpress. Đây phải nói là kiến thức khá quan trọng trong lập trình theme wordpress

Bạn nào đi theo lập trình theme wordpress thì cái này không thể không biết. Hy vọng bài viết này đã giúp các bạn hiểu rõ hơn về các get post trong wordpress. À các bạn có thể tìm hiểu thêm web new wp_query tại đây nhé: => Tài liệu chính của wordpress

Chúc các bạn học wordpress thành công!

5 4 votes
Đánh giá bài viết

Nhận thông báo
Nhận thông báo cho
guest

0 Góp ý
Inline Feedbacks
View all comments
Toancr

bài viết hữu ích, chúc ad sức khỏe nhé

Bài viết liên quan

Tạo và quản lý vai trò người dùng trong WordPress

Tạo và quản lý vai trò người dùng trong WordPress

18 - 12 - 2021

WordPress đã là một lựa chọn phổ biến cho các trang web cần hệ thống quản lý nội dung...

Đếm số lượt xem bài viết WordPress

Đếm số lượt xem bài viết WordPress

19 - 04 - 2021

Đếm số lượt xem bài viết WordPress? Bạn đang muốn tạo bộ đếm số lượt xem trang/ bài viết để...

Sử dụng child theme trong WordPress

Sử dụng child theme trong WordPress

23 - 02 - 2021

Sử dụng child theme trong WordPress như thế nào? Nếu bạn đã từng sử dụng WordPress để xây dựng các...

Hướng dẫn tạo sidebar và get sidebar trong wordpress

Hướng dẫn tạo sidebar và get sidebar trong wordpress

08 - 05 - 2020

Sidebar trong wordpress sẽ giúp website linh động hơn. Giúp khách hàng có thể thay đổi một số thành...

Hướng dẫn tạo menu và get menu trong wordpress

Hướng dẫn tạo menu và get menu trong wordpress

07 - 05 - 2020

Menu trong wordpress là một thành phần khá quan trọng. Hầu hết các website wordpress đều có chức năng...

Hướng dẫn get user và custom user field trong wordpress

Hướng dẫn get user và custom user field trong wordpress

07 - 05 - 2020

Tiếp tục với seri hướng dẫn lập trình theme wordpress, hôm nay mình sẽ hướng dẫn cho các bạn...

0
Would love your thoughts, please comment.x