web-dev-qa-db-ja.com

Post_statusの子が変更されたときにpostmetaの親を更新する

カスタムステータス=完了です。子供の投稿の更新ステータスが「完了」になったら自動的に設定します。両親のポストメタも変わります。

ここに私のコード:

 add_action('save_post', 'update_status_parent_when_completed');
function update_status_parent_when_completed(){

        /** Ensure this is the correct Post Type*/
        if($post_type !== 'screening')
        return;

        if ($post->post_status == 'completed'){

            $parent_id = get_the_ID($post->post_parent);
            update_post_meta($parent_id, 'screening_status', 'screen');

        }
    }

しかし、parent_postでは何も起こりません。正しい方法を教えてください。

1

WP 3.7からpost_typeに直接save_postフックにフックするオプションがあります。

例えば:

function update_post_parent_status_on_complete( $post_id ) {
    if(!isset($post))
      $post = get_post($post_id);

    // checking the status you want and also that has a parent
    if ($post->post_status == 'completed' && $post->post_parent !=0 ){
        $parent_id = $post->post_parent;
        update_post_meta($parent_id, 'screening_status', 'screen');
    }
}

add_action('save_post_screening', 'update_post_parent_status_on_complete');
0
Drupalizeme