Vòng lặp truy vấn wordpress

Như bạn đã biết thì trước đây mình đã có một bài viết cực kỳ chi tiết về WordPress Loop [Vòng lặp của WordPress] để bạn hiểu thêm về cách mà chúng ta sẽ hiển thị bài viết trong theme là như thế nào. Cũng từ bài đó, mình đã nhận được một số câu hỏi liên quan về cách sử dụng các tham số như thế nào cho đúng và các tham số nào nên nhớ vì trong một truy vấn nó có rất nhiều tham số khiến bạn phải choáng ngợp

Vì vậy, ở trong bài viết này, mình sẽ giải thích kỹ hơn về các tham số quan trọng nhất mà bạn cần nhớ khi sử dụng WordPress Loop để có thể “lôi” bài viết từ cơ sở dữ liệu ra theo đúng ý của mình.

Về cách viết tham số

Bạn có thể viết tham số theo định dạng thế này nếu chỉ sử dụng 1 hoặc 2 tham số

 $new_loop = new WP_Query['posts_per_page=5&s=wordpress'];

Trong đó, dấu & sẽ ngăn cách giữa các tham số với nhau

Nhưng nếu bạn có nhiều tham số thì tốt nhất nên viết thành dạng thế này cho dễ quản lý

 $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];

Tức là ta sẽ khai báo nó vào một biến để sử dụng. Có một cách mình rất hay sử dụng là tạo các biến này trong tệp nào đó rồi đưa vào các chức năng của tệp. php để dễ quản lý nếu chủ đề có nhiều Truy vấn khác nhau

Các thông số tham số của WordPress Query

1. Tham số tùy chỉnh số lượng bài viết cần lấy

Tham số này có tên là

 $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
2. Giá trị của nó sẽ là một số tự nhiên và số chỉnh sửa này là số bài viết cần hiển thị ra

 $new_loop = new WP_Query[ 'posts_per_page=5' ];

2. Tham số lấy bài viết từ một loại bài đăng chỉ định

Tham số này sẽ được sử dụng nhiều nhất khi bạn sử dụng Loại bài đăng tùy chỉnh để lặp lại nó có thể lấy các bài viết ra từ một loại bài đăng nào đó. Có thể lấy ra từ nhiều loại bài đăng khác nhau

 $new_loop = new WP_Query[ 'post_type=sanpham' ];

Nếu muốn lấy bài từ nhiều loại bài đăng một lúc thì bạn sẽ viết thế này

 $new_loop = new WP_Query[ array[ 	'post_type' => array[ 'post', 'page', 'sanpham' ] ] ];

3. Tham số bỏ qua các bài đăng sau nó

Tham số này rất hữu ích cho những bạn muốn làm trang tin tức khi sử dụng liên tiếp 2 vòng lặp với nhau, đó là bỏ qua các bài đăng sau nó bằng tham số

 $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
3

 $new_loop = new WP_Query[ 'offset=3&posts_per_page=4' ];

Đoạn trên nghĩa là nó sẽ hiển thị 4 bài nhưng loại trừ 3 bài mới nhất

4. Remove the number of Sticky Post

Khi trang web bạn có gắn Sticky Post thì mặc định nó đều gọi ra trong Loop ở mọi trường hợp. Nếu bạn không muốn hiển thị bài đăng dính ở bất kỳ vòng lặp nào thì có thể sử dụng tham số

 $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
4

 $new_loop = new WP_Query[ 'ignore_sticky_posts=1&cat=4&posts_per_page=-1' ];

Đoạn trên nghĩa là lấy toàn bộ bài viết [-1] trong danh mục mang ID là 4 nhưng loại trừ bài đăng dính trong danh mục đó

5. Tham số lấy bài từ Category và Tag

 $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
0

Đoạn trên nghĩa là sẽ lấy các bài viết trong chuyên mục mang ID là 5 có gắn thẻ là wordpress cơ bản [viết dưới dạng slug]

Ngoài ra, một số tham số liên quan đến thẻ là

  •  $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
    5 [string] – Use slug of tag
  •  $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
    6 [int] – Use with ID format
  •  $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
    7 [mảng] – Lấy bài từ nhiều thẻ nhưng các bài đó sử dụng chung nhiều thẻ, sử dụng ID
  •  $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
    8 [mảng] – Nhận bài từ nhiều thẻ khác nhau, sử dụng ID
  •  $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
    9 [array] – Không thể lấy bài từ thẻ chỉ định, sử dụng ID
  •  $new_loop = new WP_Query[ 'posts_per_page=5' ];
    0 [array] – Tương tự với
     $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
    7 but used slug
  •  $new_loop = new WP_Query[ 'posts_per_page=5' ];
    2 [array] – Tương tự với
     $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
    8 but used slug

Tương tự với tag, category cũng có các tham số tương tự như vậy, tham khảo tại đây

6. Nhận bài theo ngày

Phần ngày tháng này là một trong những tham số khá quan trọng vì nó sẽ có thể giúp ích cho bạn trong việc giải quyết nhiều vấn đề. Chẳng hạn như bạn muốn lấy bài theo tháng, ngày, giờ, cuối tuần, mùa,…. Hoàn toàn có thể làm được trong tham số này

 $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
0

Ở đoạn trên là ta sẽ lấy bài vào ngày 12 tháng 6 năm 2014

Nếu bạn cần lấy bài của ngày hôm nay ra thì có thể viết ở dạng như sau

 $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
1

Hoặc lấy toàn bộ bài trong tuần này

 $args = array[ 	'posts_per_page' => '5', 	's' => 'wordpress' ]; $new_loop = new WP_Query[$args];
0

Hoặc bạn cũng có thể lấy chi tiết bài viết trong thời gian định rõ nhất của những ngày hành chính. Tức là từ 8h đến 17h từ thứ hai đến thứ sáu

Chủ Đề