Форматирование штрих-кодов и возврат в верхнюю часть контента

Использование плагина Advanced Custom Fields, и у меня есть короткий код для поля ретранслятора, но он возвращает список в верхнем содержании. Я изменил его с echo на return , который, как я понял, установил бы проблему его появления в верхней части содержимого, но он этого не сделал, и теперь он удаляет все html и возвращает все это как один большой текстовый блок , Ясно, что я делаю что-то неправильно.

 function teamlist_shortcode($atts, $content = null) { if (get_field('aw_team_members')): while (has_sub_field('aw_team_members')): $string = '<h3>' . the_sub_field('team_name') . '</h3><h3 class="subtitle">' . the_sub_field('team_title') . '</h3>' . the_sub_field('team_bio'); endwhile; return $string; endif; } add_shortcode('teamlist', 'teamlist_shortcode'); 

Solutions Collecting From Web of "Форматирование штрих-кодов и возврат в верхнюю часть контента"

the_sub_field echo s. Документы вполне понятны.

Функция the_sub_field используется с полем ретранслятора и поле гибкого содержимого (требуется лицензионный ключ) для отображения значения подполя. При переходе через одно из этих полей эта функция отображает подполе из текущей строки.

Это то же самое, что и echo get_sub_field ();

http://www.advancedcustomfields.com/resources/functions/the_sub_field/

Используйте get_sub_field для построения строки.

Названия функций следуют за общим (но не универсальным) шаблоном WordPress или используют префикс get_ для функций, которые echo и префикс get_ для возвращаемых функций.

Тем не менее, все еще будет проблема в том, что ваш код полностью перезаписывает $string на каждой итерации. Вам нужно объединить строку со всеми результатами, с которыми вы легко справитесь .= Вместо just = .

 function teamlist_shortcode($atts, $content = null) { if (get_field('aw_team_members')): $string = ''; while (has_sub_field('aw_team_members')): $string .= '<h3>' . the_sub_field('team_name') . '</h3><h3 class="subtitle">' . the_sub_field('team_title') . '</h3>' . the_sub_field('team_bio'); endwhile; return $string; endif; } add_shortcode('teamlist', 'teamlist_shortcode');