Wordpress中ACF搭配Slick Slider图片跳转仅到首页问题求助
问题原因
你的代码核心问题出在链接输出逻辑上,两处错误导致href属性为空,浏览器默认跳转首页:
- 没有用
echo输出链接内容,PHP代码段里的逻辑不会自动打印到页面 - 直接使用链接ID没有转换成可访问的URL地址
修正方案
如果你ACF的link子字段设置的返回格式为链接数组,将a标签的href部分修改为以下代码即可:
<a href="<?php echo esc_url(get_permalink($link['id'])); ?>">
如果你的link字段返回格式设置为直接返回URL字符串,修改为:
<a href="<?php echo esc_url($link); ?>">
完整修正后代码示例
<h3 class="pb-3"><?php the_field('slider-text', false, false) ?></h3> <div id="<?php echo esc_attr($id); ?>" class="<?php echo esc_attr($className); ?>"> <?php if (have_rows('slides')): ?> <div class="slides" data-slick='{"slidesToShow": 5, "slidesToScroll": 1, "autoplay": true, "autoplaySpeed": 2000, "dots": true}'> <?php while (have_rows('slides')): the_row(); $image = get_sub_field('image'); $link = get_sub_field('link'); ?> <div class="col"> <!-- 修正后的链接代码,默认适配链接数组返回格式 --> <a href="<?php echo esc_url(get_permalink($link['id'])); ?>"> <?php echo wp_get_attachment_image($image['id'], 'full'); ?> </a> </div> <?php endwhile; ?> </div> <?php endif; ?> </div>
注意事项
- 如果需要跳转外链,可给a标签添加
target="_blank" rel="noopener noreferrer"属性,提升站点安全性 - 若修改后仍有问题,可在循环内临时添加
<?php var_dump($link); ?>打印字段值,确认ACF字段配置正确、能正常拿到链接数据
内容的提问来源于stack exchange,提问作者Beep
相关产品推荐
相关产品推荐

