Tham số của meta meta_input trong wp_insert_post () được sử dụng để làm gì?


10

Tôi đang chèn một số bài đăng vào wordpress bằng hàm wp_insert_post () .

Tôi muốn chèn một số trường tùy chỉnh trên mỗi bài đăng và đọc tài liệu Tôi mặc dù tham số meta_info đã được sử dụng cho điều đó, tôi đã thử một cái gì đó như thế này:

$data = array(
        'post_author' => 1,
        'post_status' => 'publish',
        'post_title' => $post->getTitle(),
        'post_content' => $post->getContent(),
        'post_category' => $post->getCategory(),
        'tags_input' => $post->getTags(),
        'meta_input' => array( "_test" => "testx1" )
);

$postID = wp_insert_post( $data );

Bài đăng được chèn chính xác và các thẻ quá. Nhưng không có trường tùy chỉnh được thêm vào. Tôi biết tôi có thể sử dụng add_post_meta () để thêm chúng nhưng tôi vẫn muốn biết tham số meta_input được sử dụng để làm gì, vì tôi đã tìm kiếm trên cơ sở dữ liệu cho "testx1" sau khi chèn bài đăng và không thể tìm thấy kết quả nào.

Câu trả lời:


7

Phần này wp_insert_posts()cho đi:

  if ( ! empty( $postarr['meta_input'] ) ) {
        foreach ( $postarr['meta_input'] as $field => $value ) {
            update_post_meta( $post_ID, $field, $value );
        }
  } 

nơi chúng tôi thấy cách các trường meta bài được cập nhật / thêm vào update_post_meta().

Đây là mô tả nội tuyến cho meta_input:

Mảng các giá trị meta bài được khóa bởi khóa meta bài đăng của họ. Mặc định trống.

Điều này đã được thêm vào trong WordPress 4.4 và đây là vé có liên quan # 20451 để biết thêm thông tin.

Lưu ý rằng việc sử dụng dấu gạch dưới phía trước phím meta _testsẽ ẩn nó khỏi metabox của trường tùy chỉnh trong màn hình chỉnh sửa bài.


Ohh, wp im thử nghiệm là 4.3, cảm ơn rất nhiều.
streel 30/1/2016

0

Cách tôi làm là thông qua term_id không sên và nó hoạt động:

//insert Art items into database
$arr = array('item 1', 'item 2');
// $arr = array('art item 1', 'art item 2');

foreach ($arr as $a) { 
    wp_insert_post(array(
    //essentials
    //'ID'      => 1131,
    'post_author'       => 1,
    'post_title'        => $a,
    'post_type'         => 'post',
    'post_content'      => 'Something...',
    'post_status'       => 'publish',
    'post_name'         => 'post name',
    'meta_input'        => array( //(array) Array of post meta values keyed by their post meta key. Default empty.
        'city'     => '',// 'name' => $post['name']
        'country'  => ''// 'city' => $post['city']
    ),
    'tax_input'    => array(
        'category' => array(33,32), //id numbers work, slugs tend to be ignored !!!
        'post_tag' => array('one', 'two') //for tags slugs seem to work
    ),//(array) Array of taxonomy terms keyed by their taxonomy name. Default empty. Equivalent to calling wp_set_post_terms() / wp_set_object_terms()
    //'tags_input'  => array('una', 'trei'), //(array) Array of tag names, slugs, or IDs. Default empty. Equivalent to calling wp_set_post_tags().
    ), true);   
}
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.