You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ACF重复器(Repeater)中链接无法正常工作问题求助

问题排查与解决方案

你遇到的链接无法正常显示问题,核心原因很明确——在HTML的href属性里没有输出PHP变量的值。咱们来看你代码里的这段关键部分:

<a href="<?php $link; ?>" class="click__a">

这里你仅写出了变量$link;,但PHP不会自动把变量内容输出到页面上,必须用echo指令或者PHP短标签来主动输出变量值。


修正方案一:使用echo输出(最直观)

把代码改成这样:

<a href="<?php echo esc_url($link); ?>" class="click__a">
  • 新增echo指令,让PHP把$link存储的URL输出到href属性中
  • 额外加上esc_url()函数:这是WordPress开发的安全最佳实践,用来过滤、净化URL,避免XSS等安全风险

修正方案二:使用PHP短标签(更简洁)

WordPress默认支持PHP短标签<?= ?>,它等价于<?php echo ?>,可以把代码简化成:

<a href="<?= esc_url($link); ?>" class="click__a">

额外排查点(以防万一)

如果修改后链接还是不正常,建议做两个小检查:

  • ACF字段返回格式:确认你把链接字段的返回值设置为「URL」(而非「链接对象」)。如果是返回对象的话,需要用$link['url']获取地址,$link['title']获取链接文本
  • 变量值验证:在循环里临时加一行var_dump($link);,看看变量实际存储的内容,确认不是空值或格式错误

修正后的完整代码片段参考:

<div class="click">
    <?php if( $link ): ?>
        <a href="<?= esc_url($link); ?>" class="click__a">
            <img src="<?php bloginfo('template_directory');?>/assets/img/icons/right-arrow-grey.svg" alt="" class="click__right-arrow">
            <h6><?php echo esc_html($link_text ?: 'View'); ?></h6>
        </a>
    <?php endif; ?>
</div>

这里还额外做了两个优化:

  1. 用esc_html()过滤$link_text,避免HTML注入风险
  2. 用?:三元运算符,当$link_text为空时自动显示默认的「View」文本

内容的提问来源于stack exchange,提问作者Rida

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 16:37:36