Попробуйте этот метод. Протестировано на Wordpress 5.3.2, но должно работать на всех версиях.
add_filter('default_content', 'assign_parent_to_new_post', 10, 2);
/**
* @param string $post_content
* @param WP_Post $post
*
* @return string
*/
function assign_parent_to_new_post($post_content, $post)
{
if ($post->post_type != 'page') {
return $post_content;
}
$post->post_parent = 7; //Parent post_id goes here
wp_update_post($post);
return $post_content;
}
Идея, лежащая в основе этого, довольно проста - подключить где-нибудь внутри пустого процесса создания записи, подставить post_parent, а затем выложить sh в базу данных.