Actually, I think the problem is that <?php $posts = the_sub_field('workshop_speaker'); if( $posts ): ?>
should use “get_sub_field” instead, like so: <?php $posts = get_sub_field('workshop_speaker'); if( $posts ): ?>
I was having a similar problem, and found that solution here which worked for me.
Hope that helps!
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users