# Get post và new wp\_Query trong wordpress

### Vòng lặp get post trong wordpress <a href="#vong-lap-get-post-trong-wordpress-0" id="vong-lap-get-post-trong-wordpress-0"></a>

#### Cú pháp: <a href="#cu-phap-1" id="cu-phap-1"></a>

```php
<?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; ?>
12345
```

#### Giải thích: <a href="#giai-thich-2" id="giai-thich-2"></a>

Đâ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: <a href="#su-dung-3" id="su-dung-3"></a>

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: <a href="#cac-thanh-phan-cua-bai-viet-co-the-hien-thi-trong-vong-lap-query-4" id="cac-thanh-phan-cua-bai-viet-co-the-hien-thi-trong-vong-lap-query-4"></a>

* **\<?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ụ: <a href="#vi-du-5" id="vi-du-5"></a>

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
<?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ố <a href="#vong-lap-new-wp_query-get-bai-viet-voi-tham-so-6" id="vong-lap-new-wp_query-get-bai-viet-voi-tham-so-6"></a>

Ở 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: <a href="#cu-phap-new-wp_query-7" id="cu-phap-new-wp_query-7"></a>

```php
<?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: <a href="#giai-thich-new-wp_query-8" id="giai-thich-new-wp_query-8"></a>

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: <a href="#cac-tham-so-dau-vao-9" id="cac-tham-so-dau-vao-9"></a>

* **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 tài đây: [Tham số New wp\_query](https://hocwordpress.vn/wp-content/uploads/2020/04/hocwordpress.vn-thamso.zip)

![File tất cả các tham số của get post trong wordpress](https://1969157529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3yN44WNdRdbv3lgY8XRE%2Fuploads%2F3WV9RyWm6q59yo9HYhdQ%2Fimage.png?alt=media\&token=9d94219f-7e5e-4b64-b53f-1991551925fd)

