wp_insert_post thêm meta_input


8

Trong tài liệu về wp_insert_postcó một thay đổi trên một nửa trang có nội dung như sau:

Vì: WordPress 4.4.0 Một mảng 'meta_input' hiện có thể được chuyển đến $ postarr để thêm dữ liệu meta bài đăng.

Tôi đang sử dụng Wordpress 4.4.2. Tôi sẽ cố gắng thêm một bài viết mới bằng cách chạy mã như sau:

function handle_post($post) 
{
    wp_insert_post( array(
        'post_title'    => $post['title'],
        'post_type'     => 'werknemers',
        'meta_input'    => array(
            array(
                'key'   => 'name',
                'value' => $post['name']
            ),
            array(
                'key'   => 'city',
                'value' => $post['city']
            )
        )
    ) ); 
}

Bài đăng được thêm vào cơ sở dữ liệu, nhưng không có dữ liệu meta. Tôi đã tìm thấy bài đăng ngăn xếp này , nhưng tôi không thể tìm ra cách thực hiện if statement.

Tôi cũng quan tâm đến cách thêm các nguyên tắc phân loại (tax_input).

Câu trả lời:


18

meta_inputchỉ là một mảng một chiều như key => value:

'meta_input' => array(
    'name' => $post['name'],
    'city' => $post['city']
)

tax_input hơi khác một chút, với thuế là khóa và một loạt các giá trị:

'tax_input' => array( 
    'taxonomy_name' => array( 
        'term', 
        'term2', 
        'term3' 
    ) 
)

Lưu ý rằng tax_inputđể hoạt động, người dùng hiện đang đăng nhập khi mã chạy phải có khả năng quản lý phân loại đó, nếu không nó sẽ thất bại trong âm thầm.


1
Xin lỗi vì phản hồi muộn, nhưng cảm ơn vì lời giải thích rõ ràng! Hoàn toàn làm việc như mong đợi
ronnyrr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.