WordPress post 추가/업데이트 후 훅과 포스트 메타 삽입 후 후 후크?
「비디오」라고 하는 커스텀 투고 타입이 있습니다.이 타입에는, 몇개의 커스텀 필드가 정의되어 있습니다.「동영상」의 투고를 작성하거나 갱신할 때, 기능을 실행하고 싶습니다.
아쉽게도 이 함수는 방금 작성한 투고에 대한 투고 메타 데이터 값과 일반적인 후크가 필요합니다.save_post
,publish_post
포스트 메타가 데이터베이스에 삽입되기 전에 실행되는 것 같기 때문에 사용할 수 없습니다.
변경하지 않고 "게시"를 클릭하는 것만으로 수동으로 게시물을 업데이트하면 정상적으로 작동합니다.
모든 메타데이터가 삽입된 후 프로세스 후반부에서 실행되는 후크가 있습니까?
내가 필요한 일을 하는 문서화되지 않은 후크라는 것이 있다.
후크 함수에 메타 ID, 오브젝트 ID(게시 ID와 동일), 메타 키 및 메타 값의 4개의 파라미터를 전달합니다.후크 기능에서는 메타 키 이름이 필요한 필드인지 확인하고 값이 필요한 경우 계속 진행합니다.
예를 들어 다음과 같습니다.
/**
* Use value of post meta for something when the post
* meta changes
* @param integer $meta_id ID of the meta data field
* @param integer $post_id Post ID
* @param string $meta_key Name of meta field
* @param string $meta_value Value of meta field
*/
function saveYouTubeInfo($meta_id, $post_id, $meta_key='',
$meta_value=''){
// Stop if not the correct meta key
if ( $meta_key != 'my_meta_field_name') {
return false;
}
// Function code goes here.
}
add_action('updated_post_meta', 'saveYouTubeInfo', 10, 4);
그건 그렇고...added_post_meta
, 치환하지 않습니다.post
타겟의 포스트 타입을 지정합니다.저 같은 경우 포스트 타입의 이름은videos
하지만, 나는 여전히 그것을 사용해야만 했습니다.updated_post_meta
그리고 아니다updated_videos_meta
.
post meta를 아직 사용할 수 없는 이유는 save_post hook을 사용하여 post meta를 저장하기 때문입니다.따라서 포스트 메타가 데이터베이스에 저장된 후 후크가 실행되지 않습니다.
문제에 대한 두 가지 해결 방법.
- $_POST에서 데이터 가져오기
add_action(저장)_post', 'my_function');
함수 my_function(post_id){
$postmeta = $_POST['field_name'];
}
- 포스트 메타가 저장된 후 실행되도록 후크에 높은 우선순위를 사용합니다.
add_action "save_post", 'my_function', 12, 3);
function my_function post_id, $post, $update)
$postmeta = get_post_meta($post_id, 'meta_key', true);
}
언급URL : https://stackoverflow.com/questions/20087203/wordpress-hook-after-adding-updating-post-and-after-insertion-of-post-meta
'source' 카테고리의 다른 글
현재 사용자가 wordpress에서 관리자인지 확인합니다. (0) | 2023.04.02 |
---|---|
Wordpress에서 XSLT를 사용한 XML 구문 분석 (0) | 2023.04.02 |
Excel이 특정 텍스트 값을 날짜로 자동 변환하지 않도록 합니다. (0) | 2023.04.02 |
.jsx 파일과 .js 파일의 기술적인 차이점은 무엇입니까? (0) | 2023.04.02 |
Angular JS 대 Angular JS (0) | 2023.04.02 |