我正在为具有链接的块使用Advanced Custom Fieds Repeater字段插件。但是,每个块有两种类型的链接:外部链接或内部链接(此链接指向另一个Wordpress页面)。
我正在尝试编写一个调用其中一个的函数,具体取决于该字段在UI中是否为空。
我写的那个不起作用,我想知道我是否正在使用它写。
这是我写的功能。
function mediaLink(){
if (the_sub_field('block_int_link') == false) {
echo the_sub_field('block_ext_link');
}
}
这是在HTML中使用的。
<a href="<?php echo mediaLink();?>">
<div class="<?php echo $media_class;?>" style="background-image:url('<?php echo $image[0];?>');">
<p><span id="headtitle"><?php echo the_sub_field('block_headline');?></span><br/><?php echo the_sub_field('block_description');?></p>
</div>
</a>
我将内部链接设置为Allow Null。
答案 0 :(得分:0)
the_sub_field在循环中工作。您无法编写检查子字段的功能。 并且由于转发器返回值数组,因此您需要循环以检查每个链接是空的还是已填充。
此处 repeat_field_name 应替换为正确的 repeater_field slug , ID 是页面或帖子ID ,其中您已使用转发器字段填充元数据。
前:
$rep_field = get_field('repeat_field_name','ID');
if( !empty($rep_field) && count($rep_field) > 0 ) {
foreach( $rep_field as $r ) {
if( $r['block_int_link'] == false ) {
//echo $r['block_ext_link'];
echo '<a href="'.$r['block_ext_link].'"></a>';
}
}
}