2014-11-16 4 views
0

1 주일 전에이 기능을 실제로 작성했지만 저장하지 못했고 문제를 다시 알아내는 데 어려움이 있습니다.모든 게시물에 메타 키 추가 - 사용자 정의 게시 유형

이미지 크기에 따라 각각의 값으로 '방향'메타 키를 추가 한 다른 기능은 다음과 같습니다. 이 함수를 function.php에 삽입 할 수있는 함수로 변환하고 한 번 실행하여 기존의 모든 게시물에 필드를 추가 한 다음 삭제하십시오.

여러 가지 방법을 시도해 봤습니다. 모든 도움이 크게 감사 할 것입니다.

add_action('save_post_portfolio', 'add_orientation'); 
function add_orientation($post_ID) { 
    global $wpdb; 

      $post_thumbnail_id = get_post_thumbnail_id($post->ID); 
      $orientation = get_post_meta($post->ID, 'orientation', TRUE); 
      if($orientation != '') { 
      } 
      elseif($post_thumbnail_id) { 
      $image = wp_get_attachment_image_src($post_thumbnail_id, 'full'); 
      if($image[1] >= 0 && $image[2] >= 650) { 
      add_post_meta($post_ID, 'orientation', 'portrait'); 
      } 
      elseif($image[1] >= 0 && $image[2] <= 650) { 
      add_post_meta($post_ID, 'orientation', 'landscape'); 
      } 
     } 

} 

답변

0

잘 모르겠지만 작동해야합니다. 주요 기능 :이 시도

function get_post_meta_data($post_id){ 
global $wpdb; 
$wpdb->query("SELECT 'post_id','meta_key','meta_value' FROM $wpdb->postmeta WHERE 'post_id' = $post_id"); 
foreach($wpdb->last_result as $k => $v){ 
    //data: 
    //$v->meta_key == meta_key of post 
    //$v->meta_value == meta_value of post 
    //$post_id == post id 
    /* 
    Do here what you want 
    */ 
}; 
} 

한 번 발사를 기능 :

function update_meta_orientation() 
{ 
global $wpdb; 
//get all post id: 
$wpdb->query("SELECT 'post_id' FROM $wpdb->postmeta"); 
//call function for each post 
foreach($wpdb->last_result as $key => $value) 
    { 
    get_post_meta_data($value->post_id); 
    } 
} 
+0

답장을 보내 주셔서 감사합니다.) 내 해결책을 보았습니다. (내 응답을보십시오) – fromdecay

+0

좋은 직장입니다!) 솔루션을 보았습니다. 그러나 내 계정은 평판을 말하거나 평론을 요구하지 않았습니다. :)) – Sysanin

0

는 Sysanin 코드 내 대답에 관련된 방법을 잘했지만, 나는 마침내

근무하는 솔루션을 썼다
$args = array('numberposts' => -1, 'post_type' => 'portfolio'); 
$postslist = get_posts($args); 
foreach ($postslist as $post) : setup_postdata($post); 
      $post_id = get_the_ID(); 
      $post_thumbnail_id = get_post_thumbnail_id($post_id); 
      $orientation = get_post_meta($post_id, 'orientation', TRUE); 
      if($orientation =='') { 
      if($post_thumbnail_id) { 
      $image = wp_get_attachment_image_src($post_thumbnail_id, 'full'); 
      if($image[1] >= 0 && $image[2] >= 650) { 
      add_post_meta($post_id, 'orientation', 'portrait'); 
      } 
      elseif($image[1] >= 0 && $image[2] <= 650) { 
      add_post_meta($post_id, 'orientation', 'landscape'); 
      } 
     } 
    } 
    else { 
    } 
endforeach; 

다음 여기에 사람의 사용을 위해 제거한다

$args = array('numberposts' => -1, 'post_type' => 'cpt'); 
$postslist = get_posts($args); 
foreach ($postslist as $post) : setup_postdata($post); 
$post_id = get_the_ID(); // use this variable 
// do stuff here   
endforeach; 
관련 문제