Hướng dẫn wordpress search query
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ó Show 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. $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 loopif ( $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. Có thể bạn quan tâm
Chào các bạn! Update: 20.04.2016: Query bài viết theo meta value định dạng kiểu serialize Click here 30.10.2015: Query bài viết theo meta value định dạng kiểu date và order theo meta value Click here Hôm này sau một thời gian tìm hiểu về các hàm truy vấn để xuất thông tin bài viết ra ngoài web thì có các cách sau (Các cách mình biết)
Trên đây là một số hàm truy vấn bài viết. Và hôm nay mình sẽ giới thiệu các bạn về hàm WP_Query() . Mẫu website nổi bật của tôi Với hàm WP_Query() bạn có thể làm mọi thứ theo ý bạn. VD: bài mới nhất, bài theo chuyên mục, bài viết theo chủ đề category hoặc slug … Rất thuận lợi và hay đúng không? (Còn các hàm khác mình sẽ nói ở các bài viết sau.) Nào chúng ra cùng bắt tay vào tìm hiểu nhé. Tóm tắt:
Nội Dung:1. Cách sử dụng: VD1: Lấy 5 bài viết tại category có ID là 1 1, 'posts_per_page' => 5, ) // The Query $the_query = new WP_Query($query); if($the_query->have_posts()): // The Loop while ( $the_query->have_posts() ) : $the_query->the_post(); the_title(); endwhile; endif; // Reset Post Data wp_reset_postdata(); ?> Hoặc have_posts()): // The Loop while ( $the_query->have_posts() ) : $the_query->the_post(); the_title(); endwhile; endif; // Reset Post Data wp_reset_postdata(); ?> Nhìn qua như vậy chắc các bạn cũng đã hiểu phần nào đó rồi nhỉ. Và bây giờ chúng ta đến các hàm và tham số của các hàm. Điều này giúp ta xuất được các bài biết ra theo yêu cầu mà ta (Hay khách hàng) yêu cầu. Các bạn thấy dòng $the_query = new WP_Query(‘cat=1&posts_per_page=5&order=desc’); chứ. Đây là cách viết trực tiếp còn đây $the_query = new WP_Query( $query ); là cách viết gián tiếp. Với cách viết trực tiếp sẽ nhanh hơn trong trường hợp ít tham số, còn trong trường hợp nhiều tham số thì các bạn hãy dùng cách viết gián tiếp nhé. Sau đây mình xin giới thiệu một số hàm cơ bản sẽ giúp các bạn truy vấn bài viết được như ý. $query = array( //Xuất theo tác giả Chọn 1 trong các điều kiện dưới 'author' => 1, // Xuất bài viết theo id của tác giả 'author' => 2,6,17,38, // Xuất bài viết theo id của một số tác giả 'author' => -44, // Ngoại trừ tác giả có id là 44 'author_name' => 'svl', // Xuất bài viết theo tên tác giả // Lọc bài Viết theo category Chọn 1 trong các điều kiện dưới 'cat' => 1,2,3,4, // các bài trong category với id=1,2,3,4 'cat' => -1,-2, // Ngoại trừ trong cat có id=1,2 'category_name' => 'svl,html', // các category với slug có tên svl, html 'category__and' => array('2','6'), // Lấy hết các bài trong cat có id = 2,6 'category__in' => array('2','6'), // Lấy bài của cat có id=2 hoặc id = 6 'category__not_in' => array('2','6'), //Lấy bài viết mà trong đó không có một trong 2 cat có id là 2 hoặc 6 // Lọc bài viết theo TAG /* * tag (string) - use tag slug. * tag_id (int) - use tag id. * tag__and (array) - use tag ids. * tag__in (array) - use tag ids. * tag__not_in (array) - use tag ids. * tag_slug__and (array) - use tag slugs. * tag_slug__in (array) - use tag slugs. */ 'tag' => 'svl', //Xuất bài viết bởi tag slug 'tag' => 'svl+html+php', // Gồm tất cả các thẻ 'tag' => array('svl','html','php'), //Gồm các bài viết có hoặc không các thẻ // Xuất bài viết theo Post & Page 'p' => '2', // Hiện bài viết có id = 2 'page_id' => 2, // Hiện trang có id = 2 ); Ngoài ra còn rất nhiều tham số và hàm khác nữa. Bạn có thể tham khảo tại WP_Query Bây giờ đến phần offset, order và orderby nha
‘none’ – No order (available with Version 2.8). Ôi còn rất là nhiều. Các bạn có thể xem tại WP_Query đây là mình chỉ lấy mấy cái hay dùng nhất cho các bạn thôi nha. Chú ý: sau mỗi lần truy vấn phải có wp_reset_postdata() hoặc wp_reset_query() để không ảnh hưởng tới các query khác trên cùng 1 trang Update:1. Query bài viết theo meta value định dạng kiểu date và order theo meta value 2. Query bài viết theo meta value định dạng kiểu serialize Chúc các bạn có được 1 trang web như ý mình. Một CMS thực thụ từ WordPress |