2012-12-31 1 views
-2

안녕하세요, 업데이트 된 게시물과 새로운 게시물을 구분하는 전화가 필요합니다. 그런Wordpress : 업데이트 된 게시물이 아닌 새로운 게시물에 대해서만 수행하십시오.

난 단지 새 게시물에 대한 몇 가지 코드를 실행하려면

... 뭔가 :

add_action('publish_post', myfunction); 

function myfunction($post_id){ 
    if <new post> { 
     /* do something */ 
    } 
    else { 
     /* do nothing */ 
    } 
} 

내가 WP의 V3.5

어떤 제안을 사용하고 있습니다? 게시물이 게시 게시되지 않은 한 후 다시 게시 된 경우

add_action('draft_to_published', 'my_function'); 

그러나이 여러 번 발사 할 수

+0

을 ] (http://wordpress.stackexchange.com/search?q=%2Bsave_post+%2Bupdated+%2Bcreated) show? – brasofilo

답변

1

첫째, 당신은 draft_to_publish 후크를 사용하려고합니다. 액션이 한 번만 발생하도록하려면 함수의 끝에서 게시물에 맞춤 메타 요소를 설정하십시오. 함수가 시작될 때 meta 요소가 설정되어 있는지 확인하고 가능한 경우 조치를 건너 뜁니다.

--- 추가 --- 여기

가 반복 액션 보호가 어떻게 작동하는지에 대한 샘플입니다 (테스트되지 않은 코드를 - 그래서 약간의 작업해야 할 수도 있습니다) : 무슨 짓을 당신의 연구를

function my_function() { 
    $already_done = get_post_meta($post_id, 'do_once', true); 
    if(!$already_done) { 
     // Do what you need to do here 
     add_post_meta($post_id, 'do_once', 1, true); 
    } 
} 
+0

나는 당신이하는 말을 이해할 수 없다. "메타 요소"란 무엇을 의미합니까? –

+0

게시물의 사용자 정의 필드 만. add_post_meta() (http://codex.wordpress.org/Function_Reference/add_post_meta)를 사용하여 "우리가 작업을 수행했습니다"플래그를 추가 한 다음 get_post_meta()를 사용하여 플래그가 설정되어 있는지 확인하고 확인할 수 있습니다 (http : /codex.wordpress.org/Function_Reference/get_post_meta) –

+0

방금 ​​샘플을 답안에 추가했습니다. 그 점을 살펴보고 그 말이 더 적합한 지 확인하십시오. –

관련 문제