Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 高级自定义字段:在组子字段值之间循环?_Php_Wordpress_Advanced Custom Fields - Fatal编程技术网

Php 高级自定义字段:在组子字段值之间循环?

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 (

警告你,我是个笨蛋。第一个帖子也是:)

目前我有一个ACF小组,有3个子领域。我想循环遍历这些子字段并回显它们的“标签”和“值”。如果子字段为空,则我希望循环跳过/不回显该值。我可以用以下方法来模拟输出:

<?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>