Thank you for sharing these details.
To achieve something similar, I can think of two workarounds, that you can use:
a). Instead of using multiple custom fields in the intermediary post type, you can include only one single line type custom field and set it to have multiple instances.
In each instance/record of that custom field, you can enter all the information items, in a single line in a specific format, something like:
{Order}. {Title of Theme} - {Short Description of Theme} - {Day} {Duration} ({Comment})
Example:
1. This is the title - This is a short description - Monday 2 p.m. - 6 p.m. (Coffee break 4:00 p.m. - 4:15 p.m.)
For another theme entry, you can add another instance in this same custom field.
OR
b). This one is a little more complex. Instead of joining courses and speakers post types directly through a many-to-many relationship, you can connect them using a third post type "Theme".
Custom post types:
- Courses
- Speakers
- Themes
Note: the custom fields that you currently have with the intermediary post type, will be attached to this new "Themes" post type.
Relationships:
- Courses -> Themes: One-to-many relationship, so that one course can be connected to many themes, but one theme can only connect to one course.
- Speakers -> Themes: One-to-many relationship, so that one speaker can be connected to many themes, but one theme can only connect to one speaker.
Whenever, you'll need to enter a new theme record, you'll add a new post in the "Themes" post type and select which "Course" and "Speaker" this record belongs to.
I hope this helps and please let me know if you need any further assistance around this.