ACF 中继器字段:对链接使用函数
Posted
技术标签:
【中文标题】ACF 中继器字段:对链接使用函数【英文标题】:ACF Repeater Field: Using Functions for Links 【发布时间】:2014-01-29 07:41:10 【问题描述】:我正在为具有链接的块使用高级自定义 Fieds 中继器字段插件。但是,每个块都有两种类型的链接:外部链接或内部链接(这个链接指向另一个 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>
我将内部链接设置为允许 Null。
【问题讨论】:
【参考方案1】:the_sub_field 循环工作。您不能编写函数来检查子字段。 而且由于repeater返回值数组,你需要循环检查每个链接是空的还是填充的。
此处的 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>';
【讨论】:
很抱歉,我无法理解 ID 是什么。我正在使用的模块的字段名称是“media_block”,所以我知道了,但我不太确定 ID。这个模块也是一个包含并且 get_field(media_block) 已经在主文件上使用过,所以我不确定这是否会有所不同。 ID 是页面 ID 或帖子 ID。以上是关于ACF 中继器字段:对链接使用函数的主要内容,如果未能解决你的问题,请参考以下文章