ACF WordPress。如果不为空,则转发器字段中的回显字段
ACF WordPress. Echo field in repeater field if not empty
我使用 ACF 转发器字段,如果它不为空,我会尝试回显 link。
我的代码
<?php global $query_string;
$frs = query_posts($query_string.'&page=myCustomPage'); ?>
<?php $frslides=get_field('repeater_field_name'); ?>
<div class="fr-slider-links">
<?php foreach($frslides as $frslide){?>
<a href="#"><?php echo $frslide['sub_field1']; ?></a>
<? } ?>
</div><!-- fr-slider-links -->
<div class="fr-slider-wrapper">
<div id='dial'>
<button class='left' type='button'></button>
<button class='right' type='button'></button>
<div class='content'></div>
<?php $i = 1; ?>
<?php foreach($frslides as $frslide){?>
<div class='fr-slide-item'>
<div class='icon sl-icon-<?php echo $i; ?>'></div>
<div class='dial-content'>
<h3><?php echo $frslide['sub_field2']; ?></h3>
<div class="slider-box cf">
<img src="<?php echo $frslide['sub_field3']; ?>" height="121" width="121" alt="">
<p><?php echo $frslide['sub_field4']; ?></p>
<?php // Setup the standard repeater loop.
if ( have_rows( 'repeater_field_name' ) ) : while ( have_rows( 'repeater_field_name' ) ) : the_row();
if ( $source_link = get_sub_field( 'link_to_audio' ) ) : ?>
<audio controls>
<source src="<?php echo esc_url( $source_link ); ?>" type="audio/ogg; codecs=vorbis">
<source src="<?php echo esc_url( $source_link ); ?>" type="audio/mpeg">
</audio>
<?php endif;
endwhile; endif; ?>
</div><!-- slider-box -->
</div>
</div><!-- item -->
<?php $i++;?>
<? } ?>
</div><!-- dial -->
<?php wp_reset_query();?>
我做错了什么,请帮助我)可能是因为有两个同名的循环?
更清楚一点:
我有 1 个名称为 repeater_field_name
的转发器字段和行中的 5 个子字段。第五个子字段我需要用于 1 .fr-slide-item
并在那里显示音频播放器。在该行中,我将 link 赋给音频文件,对于子字段为空的所有其他行。我需要显示那个,一共没有 .fr-slide-item
个。
您可以使用标准转发器字段标记(大部分)来执行此操作。
例如:
<?php // Setup the standard repeater loop.
if ( have_rows( 'repeater_field_name' ) ) : while ( have_rows( 'repeater_field_name' ) ) : the_row();
// Check if a link has been set and assign it to a variable.
if ( $source_link = get_sub_field( 'link_field' ) ) : ?>
<audio controls>
<source src="<?php echo esc_url( $source_link ); ?> . . .
. . .
</audio>
<?php endif;
endwhile; endif; ?>
我用代码来做:
<?php $frslides=get_field('repeater_field_name'); ?>
<?php foreach($frslides as $frslide){?>
<?php if( $frslide['link_field'] ): ?>
<audio controls class="fr-audio">
<source src="<?php echo $frslide['link_field']; ?>" type="audio/ogg; codecs=vorbis">
<source src="<?php echo $frslide['link_field']; ?>" type="audio/mpeg">
</audio>
<?php endif; ?>
<? } ?>
我使用 ACF 转发器字段,如果它不为空,我会尝试回显 link。 我的代码
<?php global $query_string;
$frs = query_posts($query_string.'&page=myCustomPage'); ?>
<?php $frslides=get_field('repeater_field_name'); ?>
<div class="fr-slider-links">
<?php foreach($frslides as $frslide){?>
<a href="#"><?php echo $frslide['sub_field1']; ?></a>
<? } ?>
</div><!-- fr-slider-links -->
<div class="fr-slider-wrapper">
<div id='dial'>
<button class='left' type='button'></button>
<button class='right' type='button'></button>
<div class='content'></div>
<?php $i = 1; ?>
<?php foreach($frslides as $frslide){?>
<div class='fr-slide-item'>
<div class='icon sl-icon-<?php echo $i; ?>'></div>
<div class='dial-content'>
<h3><?php echo $frslide['sub_field2']; ?></h3>
<div class="slider-box cf">
<img src="<?php echo $frslide['sub_field3']; ?>" height="121" width="121" alt="">
<p><?php echo $frslide['sub_field4']; ?></p>
<?php // Setup the standard repeater loop.
if ( have_rows( 'repeater_field_name' ) ) : while ( have_rows( 'repeater_field_name' ) ) : the_row();
if ( $source_link = get_sub_field( 'link_to_audio' ) ) : ?>
<audio controls>
<source src="<?php echo esc_url( $source_link ); ?>" type="audio/ogg; codecs=vorbis">
<source src="<?php echo esc_url( $source_link ); ?>" type="audio/mpeg">
</audio>
<?php endif;
endwhile; endif; ?>
</div><!-- slider-box -->
</div>
</div><!-- item -->
<?php $i++;?>
<? } ?>
</div><!-- dial -->
<?php wp_reset_query();?>
我做错了什么,请帮助我)可能是因为有两个同名的循环?
更清楚一点:
我有 1 个名称为 repeater_field_name
的转发器字段和行中的 5 个子字段。第五个子字段我需要用于 1 .fr-slide-item
并在那里显示音频播放器。在该行中,我将 link 赋给音频文件,对于子字段为空的所有其他行。我需要显示那个,一共没有 .fr-slide-item
个。
您可以使用标准转发器字段标记(大部分)来执行此操作。
例如:
<?php // Setup the standard repeater loop.
if ( have_rows( 'repeater_field_name' ) ) : while ( have_rows( 'repeater_field_name' ) ) : the_row();
// Check if a link has been set and assign it to a variable.
if ( $source_link = get_sub_field( 'link_field' ) ) : ?>
<audio controls>
<source src="<?php echo esc_url( $source_link ); ?> . . .
. . .
</audio>
<?php endif;
endwhile; endif; ?>
我用代码来做:
<?php $frslides=get_field('repeater_field_name'); ?>
<?php foreach($frslides as $frslide){?>
<?php if( $frslide['link_field'] ): ?>
<audio controls class="fr-audio">
<source src="<?php echo $frslide['link_field']; ?>" type="audio/ogg; codecs=vorbis">
<source src="<?php echo $frslide['link_field']; ?>" type="audio/mpeg">
</audio>
<?php endif; ?>
<? } ?>