使用短代码时,需要返回代码。此外,您没有关闭该功能。
尝试以下操作:
function menu_loop() {
$menu = \'<div class="entry-content dishes">\';
// check if the repeater field has rows of data
if (have_rows(\'menu_sections\')):
// loop through the rows of data
while (have_rows(\'menu_sections\')) : the_row();
// display a sub field value
$menu .= \'<h2>\' . get_sub_field(\'section_title\') . \'</h2>\';
if (have_rows(\'sections_items\')) :
$menu .= \'<table><thead><tr><td class="ja_name">Name</td><td class="ja_description">Description</td><td class="ja_price">Price</td></tr></thead>\';
while (have_rows(\'section_items\')): the_row();
$menu .= \'<tr><td>\' . the_sub_field(\'dish_names\') . \'</td><td>\' . the_sub_field(\'dish_description\') . \'</td><td>$ \' . the_sub_field(\'dish_price\') . \'</td></tr>\';
endwhile;
$menu .= \'</table> \';
else :
// no rows found
endif;
endwhile;
else :
//echo \'no rows found\';
endif;
$menu .= \'</div>\';
// Code
return $menu;
}
add_shortcode(\'testimonials\', \'menu_loop\');
我只是再次检查了你的代码。。。您正在响应while语句中的\\u sub\\u字段。那可能会把事情搞砸。如果上述代码将字段放错位置,请尝试更改\\u sub\\u字段,以在while语句中获取\\u sub\\u字段(x3问题)。