Assuming that your theme still has the_content
to populate that area you can use the_content
filter to populate is. Because widgets normally echo their output you would also need to buffer output. Like this:
add_filter ('the_content','wpse304648_widget_content');
function wpse304648_widget_content ($content) {
if (get_post_type == 'your_cpt_name') {
ob_start ();
.. execute widget
$content = ob_get_contents();
ob_end_clean();
}
return $content;
}
Now, the question is how to execute a widget in this function. You are talking about creating a separate widget area for every post. That would clutter your admin widget page, but it is possible. In your functions.php
you can loop through all your custom posts and register a sidebar in the usual way. Then in your widget admin define a bunch of widgets for every sidebar. If you register sidebars with the name ‘your-cpt-name-ID’ you can easily call them like this:
dynamic_sidebar ( 'your-cpt-name-'. get_the_ID());
It seems more logical to build your own widget that loads content depending on the post. In that case you only have to define one sidebar.