У меня есть два пользовательских типа сообщений, один из которых является дочерним по отношению к другому (родительский – скорее модальный пост). Я хочу, чтобы дочерний пост наследовал один и тот же заголовок и slug как его родитель.
Я попытался использовать следующий крючок действия:
function copy_parent_post_title( $post_id ) { $new_post = get_post($post_id); if($new_post->post_type == 'child-post-type') { $parent_title = get_the_title($new_post->post_parent); $post_slug = sanitize_title_with_dashes($parent_title); $post_update = array( 'ID' => $post_id, 'post_title' => $parent_title, 'post_name' => $post_slug ); // To stop infinite loop: remove_action( 'wp_insert_post', 'copy_parent_post_title' ); wp_update_post( $post_update ); add_action( 'wp_insert_post', 'copy_parent_post_title' ); } } add_action( 'wp_insert_post', 'copy_parent_post_title' );
Проблема в том, что $new_post->post_parent
всегда дает 0
. Я попытался заменить его вручную фактическим родительским идентификатором, и выше все работает отлично. Почему $new_post->post_parent
не дает правильного идентификатора родительского сообщения?