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
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
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 sử dụng danh sách ID trong shortcode
Một trường hợp sử 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ụ:
Bây giờ, người dùng có thể sử dụng shortcode của bạn như thế này:
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 sử dụng 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 sử dụng wp_parse_id_list() Ví dụ có 1 mảng với ID bài đăng đơn giản như sau:
1 |
$list = array( 1, 13, '11', 13 ); |
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à
1 |
array( 1, 13, 11 ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
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; } ); |
[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 sử dụng dấu phẩy và thay vào đó sử 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
1 |
array_filter( wp_parse_id_list( $post_ids ) ) |
wp_parse_id_list()
trong WordPress một cách thuần thục.