Sử dụng chức năng wp_parse_id_list() trong WordPress
Từ phiên bản WordPress 3.0 sẽ có hàm wp_parse_id_list()
giúp xử lý một mảng hoặc chuỗi và trả về một mảng với ID duy nhất khi đã được dọn dẹp và vệ sinh phần đầu ra.
Tổng quan về chức năng
wp_parse_id_list( array|string $list )
$list
(array) (Required) List of IDs.Return: (array) Sanitized array of IDs.
Cách tiêu dùng wp_parse_id_list()
Ví dụ có 1 mảng với ID bài đăng đơn giản như sau:
$list = array( 1, 13, '11', 13 );
Bạn sẽ nhận thấy rằng một trong những ID trong mảng này là một chuỗi là số 13 bị trùng lặp. Bạn có thể chạy qua hàm wp_parse_id_list()
để làm sạch phần đầu ra với unique ID
wp_parse_id_list( $list );
Kết quả đầu ra sẽ là
array( 1, 13, 11 )
Như bạn có thể thấy, kết quả là một mảng các số nguyên với các giá trị không còn bị trùng lặp.
Trường hợp tiêu dùng danh sách ID trong shortcode
Một trường hợp tiêu dùng tuyệt vời cho chức năng này là khi bạn có một Shortcode có một hoặc nhiều ID bài đăng, ví dụ:
add_shortcode( 'my_shortcode', function ( $atts, $content ) { $atts = shortcode_atts( array( 'post_ids' => '' ), $atts ); $query = new WP_Query( array( 'post__in' => array_filter( wp_parse_id_list( $atts['post_ids'] ) ), 'ignore_sticky_posts' => true, ) ); $output = ''; if ( $query->have_posts() ) { $output .= '<p>'; while ( $query->have_posts() ) { $query->the_post(); $output .= esc_html( $query->post->post_title ) . '<br />'; } $output .= '</p>'; } return $output;} );
Bây giờ, người dùng có thể tiêu dùng shortcode của bạn như thế này:
[my_shortcode post_ids="1"]
hoặc có nhiều ID, như thế này:
[my_shortcode post_ids="1,2,3"]
hoặc, nếu người dùng không tiêu dùng dấu phẩy và thay vào đó tiêu dùng dấu cách, thì shortcode vẫn làm việc ngon lành.
[my_shortcode post_ids="1 2 3"]
hoặc, nếu người dùng nhập như sau vẫn hoạt động tốt
[my_shortcode post_ids="1, 2 3 4"]
Có hai trường hợp không thể dọn sạch danh sách ID đúng cách.
Đầu tiên là khi người dùng thêm dấu cách ở đầu hoặc cuối vào danh sách ID ở dạng chuỗi:
[my_shortcode post_ids="1 2 3 "]
Làm như vậy hàm sẽ thêm số 0 vào mảng, rõ ràng đây không phải là ID bài đăng hợp lệ.
Thứ hai là khi người dùng thêm 0 vào danh sách ID
[my_shortcode post_ids="0 1 2 3"]
Vì lý do này, bạn nên kết hợp code như sau để fix
array_filter( wp_parse_id_list( $post_ids ) )
Làm như vậy đảm bảo rằng số 0 sẽ không bao giờ có trong danh sách ID.
Hy vọng qua bài viết bạn sẽ hiểu và biết cách tiêu dùng hàm wp_parse_id_list()
trong WordPress một cách thuần thục.
0 nhận xét:
Post a Comment