I'm trying to cover my basic PHP knowledge and I've stucked a bit. I'm trying to connect my this code:
if( have_rows('sales') ):
while( have_rows('sales') ) : the_row();
$dataPlatform = get_sub_field('platform');
endwhile;
endif;
Which is supposed to get all the product platforms from the ACF repeater field (number of values will vary from 1 to approx 5). And add it to this foreach loop:
global $post;
$terms = get_the_category( $post->ID, 'category' );
foreach($terms as $term) {
echo '<div class="col-lg-3 col-md-6 col-xs-12 game-single" data-type="'.$term->slug.'" data-platform="">';
}
Obviously I've tried the easiest approach like the below one:
global $post;
$terms = get_the_category( $post->ID, 'category' );
if( have_rows('sales') ):
while( have_rows('sales') ) : the_row();
$dataPlatform = get_sub_field('platform');
foreach($terms as $term) {
echo '<div class="col-lg-3 col-md-6 col-xs-12 game-single" data-type="'.$term->slug.'" data-platform="'. $dataPlatform .'">';
}
endwhile;
endif;
But it doesn't work as I planned. In theory I wanted to have data attribute called data-platform be filled like data-platform="value1 value2.." but my current code breaks the entire design because it duplicates the entire div with the certain values, and nest them.
What I'm doing wrong?
This would make you some divs without closing them. What is the value of $dataPlatform
? Also you should be escaping what you echo using esc_attr
or esc_html
.
foreach($terms as $term) {
echo '<div class="col-lg-3 col-md-6 col-xs-12 game-single" data-type="'.$term->slug.'" data-platform="'. $dataPlatform .'">';
}
Update: Maybe this?
global $post;
$terms = get_the_category( $post->ID, 'category' );
$dataPlatform = "";
if( have_rows('sales') ):
while( have_rows('sales') ) : the_row();
$dataPlatform .= get_sub_field('platform') . " ";
endwhile;
foreach($terms as $term) {
echo '<div class="col-lg-3 col-md-6 col-xs-12 game-single" data-type="'.$term->slug.'" data-platform="'. $dataPlatform .'">';
}
endif;