Php 高级自定义字段:在组子字段值之间循环?
警告你,我是个笨蛋。第一个帖子也是:) 目前我有一个ACF小组,有3个子领域。我想循环遍历这些子字段并回显它们的“标签”和“值”。如果子字段为空,则我希望循环跳过/不回显该值。我可以用以下方法来模拟输出:Php 高级自定义字段:在组子字段值之间循环?,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,警告你,我是个笨蛋。第一个帖子也是:) 目前我有一个ACF小组,有3个子领域。我想循环遍历这些子字段并回显它们的“标签”和“值”。如果子字段为空,则我希望循环跳过/不回显该值。我可以用以下方法来模拟输出: <?php $objective_desc = "objective_desc"; $objective = get_field_object($objective_desc); ?> <div class="item"> <?php if (
<?php
$objective_desc = "objective_desc";
$objective = get_field_object($objective_desc);
?>
<div class="item">
<?php if ( $objective_desc ): ?>
<h2 class="sub-sample-title"><?php echo $objective['label']; ?></h2>
<?php endif; ?>
<?php if ( $objective_desc ): ?>
<p class="sub-description"><?php echo $objective['value']; ?></p>
<?php endif; ?>
</div>
问题是我必须为组中的每个子字段复制并通过。我相信有一种更优雅的方式 我认为你发布的代码中有一个拼写错误;您可能想通过检查
而不是
来检查“子字段”是否为空,对吗?如果您只是检查$objective\u desc
是否每次都为空,那么您可以在一个If
块内完成所有操作
注意使用空if
语句检查变量是否为空。您应该改用空:
。在代码中,您将$objective_desc设置在顶部,因此即使其中没有任何内容,它也将作为true进行计算
可能有一些复杂的方法可以设置循环和额外的变量,使其更“优雅”,但由于您正在基于子字段(
,
,等等)更改其他HTML元素,老实说,您最好复制并粘贴到一堆if
语句中。它会更清晰,工作速度也一样快,并且更容易调试。我的两分钱。我想如果你想在组子字段中循环,我已经找到了一个解决方案。比如说,你想在一个包含一堆链接和它们各自的文本的组中循环。您只需执行以下操作:
<?php $links = get_field('list_of_links'); ?>
<ul>
<?php foreach ($links as $link) {
if (!empty($link)): ?>
<li><a href="<?php echo $link['url'] ?>"><?php echo $link['title'] ?></a></li>
<?php endif; } ?>
</ul>