it-swarm-ko.tech

WordPress 사용자 정의 게시 유형에 대한 새 게시물 작성 후 함수 호출?

'product'라는 새로운 게시 유형을 만든다고 가정합니다. 이 새로운 'product' 게시물을 만들 때 함수 (사용자 생성)를 수행 할 수 있습니까?

7
dotty

Functions.php에서 :

function mynewproduct(){
    myfunction();
}
add_action( 'new_product', 'mynewproduct' );

자세한 내용 및 공식 문서는 다음을 참조하십시오.

http://codex.wordpress.org/Post_Status_Transitions

5
Tom J Nowell

하이 @ 도티 :

/wp-includes/post.php 파일에서 wp_insert_post() 함수의 끝 부분을 살펴보십시오 (WordPress 3.0.1의 2148 ~ 2392 행) WordPress는이 기능을 사용하여 게시물을 추가 및 업데이트합니다. )

마지막에는 다음 코드가 있습니다. 이 코드에서 wp_transition_post_status()에 대한 호출을 식별 할 수 있습니다. (조금 더 자세히) edit_post, post_updated, save_postwp_insert_post ( 솔직히 우리는 우리가 왜 하나 ) 귀하의 필요에 맞는 것을 사용할 수 있습니다 :

<?php
wp_transition_post_status($data['post_status'], $previous_status, $post);
if ( $update ) {
  do_action('edit_post', $post_ID, $post);
  $post_after = get_post($post_ID);
  do_action( 'post_updated', $post_ID, $post_after, $post_before);
}
do_action('save_post', $post_ID, $post);
do_action('wp_insert_post', $post_ID, $post);
return $post_ID;

그리고 @Jan Fabry 언급했듯이 wp_transition_post_status()에서 발견 된 액션 훅이 있습니다 (WordPress 3.0.1에서 /wp-includes/post.php의 2713에서 2717까지). 적절하게 사용하십시오 :

<?php
function wp_transition_post_status($new_status, $old_status, $post) {
  do_action('transition_post_status', $new_status, $old_status, $post);
  do_action("${old_status}_to_$new_status", $post);
  do_action("${new_status}_$post->post_type", $post->ID, $post);
}
3
MikeSchinkel

wp_transition_post_status 함수가 호출되어 "${new_status}_$post->post_type" 액션을 트리거하므로 productpublish 상태로 이동하면 publish_product 액션이 트리거됩니다.

2
Jan Fabry