ACF 中链接的条件逻辑

Conditional Logic for links in ACF

这就是我正在尝试做的事情。我为此使用高级自定义字段并输出带有 link 的标题,但有时它们不是 link。当没有 link 时,我不想将其包装在标签中,但我似乎无法弄清楚那部分。

这是我的部分页面代码

<div class="small-12 columns">
    <h2>Show Information</h2>
    <?php if( have_rows('show_information') ): ?>
    <?php while( have_rows('show_information') ): the_row(); ?>
    <p><a href="<?php the_sub_field('show_link'); ?><?php the_sub_field('show_pdf'); ?>" target="_blank">
        <?php the_sub_field('show_title'); ?></a></p>
    <?php endwhile; ?>
    <?php endif; ?>
</div>

现在我正在使用转发器字段,并且正在显示 link 或 PDF 和标题。如果他们没有 link 或 PDF,我会 运行 解决问题,标题仍将包含在标签中,并且只会 link 在前端返回到自身。我想如果他们没有附上 link 或 PDF,标签就会消失,只是没有 link.

的文本

任何帮助都会很棒。

你应该用get_sub_field()来判断一个link是否存在,然后使用一个条件。类似于:

<div class="small-12 columns">
    <h2>Show Information</h2>
    <?php if( have_rows('show_information') ): ?>
        <?php while( have_rows('show_information') ): the_row(); ?>
            <p>
                <?php 
                    if ( get_sub_field('show_link') ) {
                        echo '<a href="' . get_sub_field('show_link') . get_sub_field('show_pdf') . '" target="_blank">';
                        echo get_sub_field('show_title') . '</a>';
                    } else { 
                        the_sub_field('show_title');
                    }
                ?>
            </p>
        <?php endwhile; ?>
    <?php endif; ?>
</div>