wp_insert_post ()에서“meta_input”파라미터는 무엇입니까?


10

wp_insert_post () 함수를 사용하여 워드 프레스에 게시물을 삽입하고 있습니다.

meta_info 매개 변수가 사용되었지만 각 게시물에 일부 사용자 정의 필드를 삽입하고 설명서를 읽고 싶습니다.

$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 );

게시물이 올바르게 삽입되고 태그도 삽입됩니다. 그러나 추가 된 사용자 정의 필드는 없습니다. add_post_meta () 를 사용 하여 추가 할 수 있지만 post를 삽입 한 후 데이터베이스에서 "testx1"을 검색하여 결과를 찾을 수 없기 때문에 meta_input 매개 변수가 사용되는 것을 알고 싶습니다 .

답변:


7

이 부분은 다음을 wp_insert_posts()제공합니다.

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

여기서 post 메타 필드가로 업데이트 / 추가되는 방법을 볼 수 update_post_meta()있습니다.

다음은 인라인 설명입니다 meta_input.

사후 메타 키로 입력 된 사후 메타 값의 배열입니다. 기본은 비어 있습니다.

이것은 WordPress 4.4에 추가되었으며 자세한 내용은 관련 티켓 # 20451 입니다.

메타 키 앞에 밑줄을 사용하면 편집 후 화면 _test사용자 정의 필드 메타 상자에서 밑줄 이 숨겨 집니다.


wp im 테스트는 4.3입니다. 감사합니다.
streel

0

내가하는 방법은 슬러그가 아닌 term_id를 통해 이루어지며 작동합니다.

//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);   
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.