ACF中继器字段:使用链接功能

时间:2014-01-10 10:55:51

标签: wordpress function advanced-custom-fields

我正在为具有链接的块使用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。

1 个答案:

答案 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>';
      }
   }
}