2011-04-06 10 views
2

wp_update_post 함수를 통해 내 게시물 중 하나에서 게시물 내용을 업데이트하려고합니다. 나는 여기에서 문서를 읽었습니다 : http://codex.wordpress.org/Function_Reference/wp_update_postwp_update_post 사용자 정의 필드 값이 사라집니다 (Wordpress)

그리고 내가 올바르게 얻으면 나는 단지 예와 같이 업데이트하고 싶은 게시물 ID와 게시물 내용을 보내야합니다. 바뀔 것이다. 이 게시물에 붙인 사용자 정의 필드가 사라지더라도 이상하게 보입니다.

내가 가지고있는 내가 전달 다음 코드 : 이런 일이 올 어떻게

if(isset($_POST['submit'])){ 
    $the_post = array(); 
    $the_post['ID'] = $_POST['id']; 
    $the_post['post_content'] = $_POST['recension']; 

    // Update the post into the database 
    wp_update_post($the_post); 
} 

내가 그것을 어떻게 해결합니까?

답변

4

게시물을 업데이트 할 때 * wp_insert_post * 기능이 사용되고 사용자 정의 필드 데이터 저장에 일반적으로 사용되는 "save_post"(1) 액션 후크가 있기 때문입니다. ... 당신이 *의 $ _ POST의 * 데이터를 확인하고 비어인지 아닌지를 설정 볼 수

$post_meta['_mymeta'] = $_POST['_mymeta']; 

// Add values of $events_meta as custom fields 

foreach ($events_meta as $key => $value) { // Cycle through the $post_meta array! 
    if($post->post_type == 'revision') return; // Don't store custom data twice 
    if($value && $value != get_post_meta($post->ID, $key, TRUE)) { // If the custom field already has a value 
     update_post_meta($post->ID, $key, $value); 
    } elseif($value && get_post_meta($post_id, $key, TRUE) == "") { // If the custom field doesn't have a value 
     add_post_meta($post->ID, $key, $value, TRUE); 
    } 
    if(!$value) delete_post_meta($post->ID, $key, get_post_meta($post->ID, $key, TRUE)); // Delete if blank 
} 

:

/업데이트 후 메타를 추가하는 표준 방법은 다음과 같이이다 빈 데이터로 메타 값을 업데이트하거나 완전히 삭제합니다.

나는이 코드 조각이 게시물 메뉴 주문을 업데이트합니다 예를 들어 당신이 ... 후 필드를 업데이트 할 database update function 또는 다른 API 함수를 사용해야한다고 가정

(1) 실행
$wpdb->update($wpdb->posts, array('menu_order' => 5), array('ID' => $post->ID)); 

때마다 게시하거나 페이지가 생성되거나 업데이트됩니다. 가져 오기, 게시/페이지 편집 양식, xmlrpc 또는 이메일로 게시 할 수 있습니다. 동작 함수 인수 : 게시 ID.

+0

기존 솔루션을 업데이트해야 할 수도 있습니다. 내가 한 것은 변수의 값을 사용자 정의 필드에 반영하는 것입니다. 도전 과제는 값을 편집 화면에 표시하지만 게시물을 업데이트 할 때까지 프런트 엔드에 적용되지 않습니다. 1,800 개 이상의 게시물이 있으며 수동으로 업데이트하려면 시간이 오래 걸릴 것입니다. 솔루션 중 하나가 기존 게시물을 업데이트하는 데 도움이 될 수 있습니까? 비록 내가 빈 필드를 삭제하고 싶지 않겠지 만. 이 문제에 도움을 주셔서 감사합니다. – gdinari

+0

게시물을 만들거나 가져올 때마다이 기능을 실행하고 싶습니다. 아이디어가 있으면 알려주십시오. 감사. – gdinari

관련 문제