Người Viết : ViKiMi Editor

Lấy thông tin về Bài Đăng / Trang / Bài Đăng tuỳ chỉnh của WordPress Website với get_posts !
WordPress Website là một trong những cách xây dựng Website mạnh mẽ nhất có thể có. Nhưng để có thể hiểu và thực hiện một cách chắc chắn và an toàn thì chúng ta cần hiểu nó một cách sâu hơn. Cách thức chúng ta làm chủ các thông tin sẽ lấy về từ Database, và hiển thị nó lên một cách chính xác nhất. Đó chính là cách mà chúng ta sẽ làm cho nó hiển thị đúng thiết kế và lọc các thông tin đúng yêu cầu.
Function được đề cập tới có lẽ là không thể thiếu trong nhiều hoàn cảnh tương tác của Website. Điều mà làm cho chúng ta hài lòng đó là những gì mà thông tin chúng ta có thể lấy được với Function này.
+ Function get_posts(), của WordPress giúp truy xuất các thông tin tuyệt vời hơn theo những điều kiện Query khác nhau.
Vậy khả năng chính của Function get_posts() là gì? Function get_posts() sẽ giúp truy xuất thông tin những bài Đăng, Trang, các loại bài đăng tuỳ chỉnh mà chúng ta muốn tìm kiếm.
Function Get_posts() sẽ giúp bạn chuyển các truy vấn mong muốn thành một dạng truy vấn MySQL an toàn và chạy truy vấn này trên cơ sở dữ liệu để trả về một mảng thông tin bài Đăng. Công việc của bạn là tiếp tục lấy các thông tin trong mảng bài Đăng hiển thị lên trang Chủ của Website.
1 ) Tạo một truy vấn cho Function get_posts()
Để thực hiện truy vấn thông tin với Function get_posts() chúng ta sẽ không phải viết những câu lệnh MySQL. Vì với WordPress, chúng ta chỉ cần xây dựng một mảng các tham số truy vấn cần thiết và truyền nó vào Function get_posts()! Công việc của WordPress là sẽ chuyển chúng thành một dạng truy vấn MySQL để chạy trên Cơ Sở Dữ Liệu, trả về các thông tin bài Đăng theo yêu cầu.
Có thể xây dựng một mảng truy vấn thông tin ví dụ như sau :
<?php
$args = array(
‘post_type’ => ‘post’,
‘numberposts’ => 20,
‘category_name’ => ‘tin_bong_da’,
);
$my_posts = get_posts( $args );
/** Nếu tồn tại thông tin truy vấn **/
if( ! empty( $my_posts ) ){
$output = ‘<ul>’;
foreach ( $my_posts as $p ){
$output .= ‘<li><a href=”‘ . get_permalink( $p->ID ) . ‘”>’
. $p->post_title . ‘</a></li>’;
}
$output .= ‘</ul>’;
}
Chúng ta đã tạo một mảng truy vấn thông tin theo đúng yêu cầu của WordPress, như vậy truy vấn mới có thể thực hiện. Các thông tin sau đó sẽ được hiển thị dưới dạng danh sách <UL>, sử dụng duyệt qua tất cả mảng bài Đăng được trả về với Foreach.
Mảng truy vấn của chúng ta tạo ra là :
$args = array(
‘post_type’ => ‘post’,
‘numberposts’ => 20,
‘category_name’ => ‘tin_bong_da’,
);
+ Thực hiện truy vấn, bài Đăng kiểu ‘post’ :
‘post_type’ => ‘post’
+ Số lượng truy vấn bài Đăng ‘numberposts’:
‘numberposts’ => 20
+ Tên của Category được truy vấn dựa vào slug :
‘category_name’ => ‘tin_bong_da’
Chúng ta có thể tạo ra mảng tham số truy vấn theo những yêu cầu phát triển trong từng trường hợp. Các mảng truy vấn phải đúng theo định dạng mà WordPress yêu cầu. Chúng ta cũng biết Function get_posts sử dụng WP_Query để truy xuất thông tin bài Đăng, các tham số sẽ sẵn có trong WP_Query (Với một vài ngoại lệ). Các tham số sẽ được nhóm trong 15 loại sau :
v Author Parameters
v Category Parameters
v Tag Parameters
v Taxonomy Parameters
v Search Parameters
v Post & Page Parameters
v Password Parameters
v Post Type Parameters
v Order & Orderby Parameters
v Date Parameters
v Custom Field (post meta) Parameters
v Permission Parameters
v Mime Type Parameters
v Caching Parameters
v Return Fields Parameter
Tất nhiên, đây là nhóm 15 loại được sử dụng. Nhưng các tham số truyền vào sẽ là các tham số cụ thể tồn tại trong 15 nhóm này. Có thể tham khảo trực tiếp tại WP_Query.
2 ) Hiển thị các thông tin truy vấn với Function get_posts()
Khi sử dụng Function get_posts() , WordPress sẽ trả về một mảng đối tượng WP_Post. Và sẽ cho phép chúng ta truy xuất vào một số biến của bài Đăng đã lưu trữ trong Cơ Sở Dữ Liệu tại bảng wp_posts để hiển thị. Các biến mà chúng ta có thể truy xuất như sau :
v ID
v post_author
v post_name
v post_type
v post_title
v post_date
v post_date_gmt
v post_content
v post_excerpt
v post_status
v comment_status
v ping_status
v post_password
v post_parent
v post_modified
v post_modified_gmt
v comment_count
v menu_order
Chúng ta có thể lấy một ví dụ ngắn về đoạn Code hiển thị thông tin đã được truy vấn với Function get_posts(). Sau khi truy vấn thông tin từ Cơ Sở Dữ Liệu, sẽ thực hiện thị nhờ đoạn Code ngắn bên dưới :
<?php
/** Hãy tạo mảng tham số cho Function get_posts **/
[. . .]
$custom_posts = get_posts( $args );
if( ! empty( $custom_posts ) ){
$output = ‘<ul>’;
foreach ( $custom_posts as $p ){
$output .= ‘<li><a href=”‘
. get_permalink( $p->ID ) . ‘”> Bài Đăng :’
. $p->post_title . ‘</a></li>’;
}
$output .= ‘</ul>’;
}
return $output ?? ‘<strong>Sorry. No posts matching your criteria!</strong>’;