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 sử 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 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ụ:

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ể sử 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 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

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 sử dụng hàm wp_parse_id_list() trong WordPress một cách thuần thục.

Từ khóa
Nếu bạn thấy bài viết có ích hãy sao chép link và chia sẻ bài viết
vutruso

Vũ Trụ Số chuyên cung cấp hosting cho WordPress, dịch vụ thiết kế website, quản trị website cho doanh nghiệp, dịch vụ quảng cáo Google, quảng cáo Facebook, các dịch vụ bảo mật website WordPress, tăng tốc website WordPress

Bài viết liên quan