Я новичок в PHP, и я не могу понять, где вставить код в мой PHP, чтобы обернуть выводимый контент в div. В существующем состоянии это выводит эхо дважды, каждый вокруг строки «season_date» и строки «archive_entry». Я хотел бы обернуть все это в один div.
Это, наверное, что-то действительно очевидное, но я не могу понять, что я делаю неправильно …
Вот код:
<?php
if (get_field("production_history_flexible")){
while (has_sub_field("production_history_flexible")){
echo '<div class="archive-wrapper">'; // BEGIN DIV HERE??
if (get_row_layout() == "season_date"){
echo '<h2 class="season-date">';
the_sub_field("season_date_entry");
echo '</h2>';
}
if (get_row_layout() == "archive_entry"){
$rows = get_sub_field('archive_entry_repeater');
if ($rows){
foreach($rows as $row){ }
}
// Surtitle
if(trim($row['surtitle']!=''))
{ echo '<p class="surtitle">'.$row['surtitle'].'</p>'; }
// Title
if(trim($row['title']!=''))
{ echo '<h3 class="season-history-show-title">'.$row['title'].'</h3>'; }
// Writer
if(trim($row['writer']!=''))
{ echo '<h4 class="season-history-writer">by '.$row['writer'].'</h4>'; }
echo '<ul>';
// Director
if(trim($row['director']!=''))
{ echo '<li>Directed by '.$row['director'].'</li>'; }
// Performers
if(trim($row['performers']!=''))
{ echo '<li>Performed by '.$row['performers'].'</li>'; }
// Co-Pro
if(trim($row['co-pro']!=''))
{ echo '<li>Co-produced with '.$row['co-pro'].'</li>'; }// Dates
if(trim($row['dates']!=''))
{ echo '<li>'.$row['dates'].'</li>'; }
// Venue
if(trim($row['venue']!=''))
{ echo '<li>'.$row['venue'].'</li>'; }
echo '</ul>';
}
echo '</div>'; // END DIV WRAPPER HERE?
}
} ?>
(Я использую плагин Advanced Custom Fields для WordPress с гибкими дополнениями контента и повторителя контента, если это имеет значение.)
Попробуйте этот код, который будет открывать div при каждом обнаружении нового сезона:
<?php
$first = true;
if (get_field("production_history_flexible")){
while (has_sub_field("production_history_flexible")){
if (get_row_layout() == "season_date"){
if(!$first)
echo '</div>';
else
$first = false;
echo '<div class="archive-wrapper">';
echo '<h2 class="season-date">';
the_sub_field("season_date_entry");
echo '</h2>';
}
if (get_row_layout() == "archive_entry"){
$rows = get_sub_field('archive_entry_repeater');
if ($rows){
foreach($rows as $row){ }
}
// Surtitle
if(trim($row['surtitle']!=''))
{ echo '<p class="surtitle">'.$row['surtitle'].'</p>'; }
// Title
if(trim($row['title']!=''))
{ echo '<h3 class="season-history-show-title">'.$row['title'].'</h3>'; }
// Writer
if(trim($row['writer']!=''))
{ echo '<h4 class="season-history-writer">by '.$row['writer'].'</h4>'; }
echo '<ul>';
// Director
if(trim($row['director']!=''))
{ echo '<li>Directed by '.$row['director'].'</li>'; }
// Performers
if(trim($row['performers']!=''))
{ echo '<li>Performed by '.$row['performers'].'</li>'; }
// Co-Pro
if(trim($row['co-pro']!=''))
{ echo '<li>Co-produced with '.$row['co-pro'].'</li>'; }// Dates
if(trim($row['dates']!=''))
{ echo '<li>'.$row['dates'].'</li>'; }
// Venue
if(trim($row['venue']!=''))
{ echo '<li>'.$row['venue'].'</li>'; }
echo '</ul>';
}
}
if(!$first)
echo '</div>';
} ?>
Других решений пока нет …