Wordpress ACF 中继器子字段
Posted
技术标签:
【中文标题】Wordpress ACF 中继器子字段【英文标题】:Wordpress ACF Repeater sub fields 【发布时间】:2019-03-30 02:06:22 【问题描述】:我在 Wordpress 中遇到问题,ACF 中继器子字段链接对象未在前端返回 href。基本上前端的链接不会输出 WP admin 中设置的任何链接。文本输出正常。
中继器字段:
Field label = Link to doc
Field name = link_to_doc
Field type = Repeater
中继器子字段 1:
Field label = Link
Field name = link
Field type = Link
中继器子字段 2:
Field label = Text of link
Field name = text_of_link
Field type = Text
php 代码:
<?php if ($section['link_to_doc']) : ?>
<?php foreach ($section['link_to_doc'] as $link) : ?>
<div>
<a href="<?= $link['link'] ?>" class="btn-txt">
<?= $link['text_of_link'] ?>
</a>
</div>
<?php endforeach; ?>
<?php endif; ?>
谁能检查一下 php 代码,让我知道哪里出了问题?
【问题讨论】:
在您的 if 语句中,您没有检查任何内容。尝试说“if(isset($section['link_to_doc'])”或检查它是否不为空。您也可以“var_dump”你的 $section 数组以查看它是否已设置。 另外,ACF 不返回数组,它返回对象,所以要访问它你需要说 $section->link_of_text 【参考方案1】:这个话题暂时没有答案,你可能已经找到了解决方案。但是现在 ACF 正在解释如何直接在文档中访问嵌套中继器的数据。
<?php
// Loop over the first repeater
if( have_rows('type') ):
while( have_rows('type') ) : the_row();
// Loop over sub repeater rows.
if( have_rows('type') ):
while( have_rows('type') ) : the_row();
// Get sub value.
$child_title = get_sub_field('name');
endwhile;
endif;
endwhile;
endif;
还有其他方法可以访问此类数据,以下是列表: https://www.advancedcustomfields.com/resources/repeater/
【讨论】:
以上是关于Wordpress ACF 中继器子字段的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress ACF 中继器字段 - 仅拉入前 2 个字段
php 用于跟踪代码的ACF自定义字段中继器(Wordpress)