2011-08-25 6 views
0

'cases'게시물 유형에 대한 새로운 메타 박스를 만들었습니다. 그리고 새로운 '사례'게시물을 게시 할 때 'sort'라는 새 테이블에 메타 아이디를 삽입하려고합니다. 이 코드를 사용했습니다 :

function save_postdata($post_id) { 
    global $post, $new_meta_boxes, $wpdb; 

    foreach ($new_meta_boxes as $meta_box) { 
     if (!wp_verify_nonce($_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__))) { 
       return $post_id; 
      } 

    if ('cases' == $_POST['post_type']) { 
    if (!current_user_can('edit_page', $post_id)) 
     return $post_id; 
     } else { 
     if (!current_user_can('edit_post', $post_id)) 
     return $post_id; 
     } 

    $data = $_POST[$meta_box['name'].'_value']; 

    if(get_post_meta($post_id, $meta_box['name'].'_value') == "") { 

    add_post_meta($post_id, $meta_box['name'].'_value', $data, true); 

    $meta_id = get_post_meta($post_id, 'meta_id', true); 

    $wpdb->insert('sort', array('meta_id'=>$meta_id, 'column_order' => 1)); 

    } 

    elseif($data != get_post_meta($post_id, $meta_box['name'].'_value', true)) 
    update_post_meta($post_id, $meta_box['name'].'_value', $data); 

    elseif($data == "") 
    delete_post_meta($post_id, $meta_box['name'].'_value', get_post_meta($post_id, $meta_box['name'].'_value', true)); 



    } 

} 

정렬 테이블에는 id, meta_id 및 column_order의 세 필드가 있습니다. 누군가 내가 잘못하고있는 것을 볼 수 있습니까?

답변

0

하여 삽입 문에 당신은 'NULL'

$ wpdb-> 삽입 ('종류', 배열 ('NULL'을 추가하는 것이 있는지 확인 => $ meta_id, 'column_order'=> 1 'meta_id'));

이것은 문제의 원인 일 수 있으며 올바른 열의 순서인지도 확인하십시오.

+0

감사합니다. 열의 순서를 확인하고 'NULL'을 추가했지만 여전히 작동하지 않습니다. – zuzuleinen