programing

wp_insert_post를 사용하여 게시 ID 삽입

muds 2023. 3. 12. 11:27
반응형

wp_insert_post를 사용하여 게시 ID 삽입

새로운 투고를 삽입할 때 투고 ID를 선택하려면 다음과 같이 하십시오.

$post = array(
'ID'                =>  3333,
'comment_status'            =>  'open',
'post_content'      =>  'hi world!',
'post_name'         =>  'title_1',
'post_status'       =>  'publish',
'post_title'        =>  'sdfsfd fdsfds ds',
'post_type'         =>  'post',
);  

$post_id = wp_insert_post($post);

ID가 = 3333인 새 게시물을 삽입하려고 합니다.

네가 이걸 사용할 수 있다는 걸 알고 싶어할 것 같아서'import_id'대신'ID''시도'해서 그걸 사용할 거예요.

다음 두 번째 예를 참조하십시오.http://codex.wordpress.org/Function_Reference/wp_insert_post#Example

간단한 해결책은 다음과 같습니다.

//check if post with id 3333 is already in database, if so, update post 3333
if (get_post_status(3333) ) {
    $post = array(
    'ID'                =>  3333,
    'comment_status'    =>  'open',
    'post_content'      =>  'hi world!',
    'post_name'         =>  'title_1',
    'post_status'       =>  'publish',
    'post_title'        =>  'your title',
    'post_type'         =>  'post',
    );  

    $post_id = wp_insert_post($post);
}
//if not in database, add post with id 3333
else {
    $post = array(
    'import_id'         =>  3333,
    'comment_status'    =>  'open',
    'post_content'      =>  'hi world!',
    'post_name'         =>  'title_1',
    'post_status'       =>  'publish',
    'post_title'        =>  'your title',
    'post_type'         =>  'post',
    );  

    $post_id = wp_insert_post($post);
}

'ID'=> 'post_id'는 해당 게시물을 갱신하고 'import_id'=> post_id는 해당 ID로 새 게시물을 만듭니다.

또한 ID를 루프스루하여 피드하여 새로운 투고를 무한히 작성할 위험 없이 여러 개의 삽입/업데이트를 실행할 수 있습니다.

미안해, 할 수 없어.다음은 Codex에서 Devs가 말한 내용입니다.

중요: $post['] 값 설정ID'] 해당 ID 번호로 투고는 작성되지 않습니다.이 값을 설정하면 함수는 해당 ID 번호로 게시물을 $post에서 지정된 다른 값으로 업데이트합니다.한마디로 새로운 투고를 삽입하려면 $post['ID']는 공백이거나 아예 설정되어 있지 않아야 합니다.

http://codex.wordpress.org/Function_Reference/wp_insert_post

daveaspinall 말처럼.나는 그것을 하는 기능을 한다.

require( 'wp-load.php' );
function simpleImportPost($title,$import_id,$content){
// Create post object
$my_post = array();
$my_post['post_title'] = $title;
$my_post['import_id']=$import_id;
$mypost['comment_status'] = 'closed';//I'll set all closed
$my_post['post_content'] = $content;
$my_post['post_status'] = 'publish';
$my_post['post_author'] = 1;
$my_post['post_category'] = array(0);
// Insert the post into the database
return wp_insert_post( $my_post );
}

예:

simpleImportPost('My Post 35',35,"35 Content");

API의 insert 기능이 아닌 것만으로 가능합니다.대신 INSERT 쿼리를 직접 작성할 수 있습니다.항상 API를 사용할 수 있을 때 사용하고 싶어하지만 사용할 수 없는 경우가 있습니다.쿼리는 다음과 같습니다.

global $wpdb;
$wpdb->query( $wpdb->prepare("
    INSERT INTO {$wpdb->posts}
    VALUES( %d, %d, NOW(), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW(), %s, %s, %d, %s, %d, %s, %s, %d )",
    $ID,
    $post_author,
    $post_date_gmt,
    $post_content,
    $post_title,
    $post_excerpt,
    $post_status,
    $comment_status,
    $ping_status,
    $post_password,
    $post_name,
    $to_ping,
    $pinged,
    $post_modified_gmt,
    $post_content_filtered,
    $post_parent,
    $guid,
    $menu_order,
    $post_type,
    $post_mime_type,
    $comment_count
) );

먼저 ID가 데이터베이스에 존재하지 않는지 확인해야 합니다.나중에 포스트 테이블 스키마가 변경될 경우 변경을 고려하기 위해 쿼리를 업데이트해야 할 수 있습니다.

언급URL : https://stackoverflow.com/questions/6558286/insert-post-id-with-wp-insert-post

반응형