2026/4/6 4:07:34
网站建设
项目流程
宜春个人网站建设,h5页面图片,系统登录入口,烟台百度建网站下面把「常用、不常用但有用」的 ACF 字段调用方式一次整理给你#xff0c;直接复制即可用。
所有示例都假设字段挂在当前页面/文章上;如果在选项页、用户、分类法上#xff0c;请看第 5 节「其它对象」。
基本语法(PHP 模板文件里)
// 返回值#xff08;原始#xff09…下面把「常用、不常用但有用」的 ACF 字段调用方式一次整理给你直接复制即可用。所有示例都假设字段挂在当前页面/文章上;如果在选项页、用户、分类法上请看第 5 节「其它对象」。基本语法(PHP 模板文件里)// 返回值原始 $val get_field(field_name); // 安全输出 echo esc_html(get_field(field_name)); // 带默认值 echo esc_html(get_field(field_name) ?: 暂无内容);常见字段类型速查 | 字段类型 | 直接 echo 会得到 | 常用写法 ||—|—|—|| Text / Textarea / Number | 字符串 | echo esc_html(get_field(‘tx’)); || Image (返回数组) | 数组 | echo wp_get_attachment_image(get_field(‘img’)[‘ID’], ‘medium’); || Image (返回 URL) | 字符串 | ” / || File | 数组 | 下载 | | Select (单选) | 单个值 | echo esc_html(get_field(‘color’)); || Select (多选) | 数组 | echo implode(‘, ‘, get_field(‘colors’)); || Checkbox | 数组 | 同上 | | True / False | bool | if (get_field(‘show_banner’)): … endif; || Wysiwyg | 已格式化 HTML | echo apply_filters(‘the_content’, get_field(‘intro’)); || Date Picker | Ymd | echo DateTime::createFromFormat(‘Ymd’, get_field(‘date’))-format(‘Y-m-d’); || Color Picker | hex | style”color:;” || Repeater | 数组 | 见第 3 节 || Flexible Content | 数组 | 见第 4 节 || Group | 数组 | echo esc_html(get_field(‘group’)[‘sub_field’]); |Repeater / 嵌套循环?php if (have_rows(slides)): ? div classswiper-wrapper ?php while (have_rows(slides)): the_row(); ? div classswiper-slide img src?php echo esc_url(get_sub_field(slide_img)[sizes][large]); ? / h3?php echo esc_html(get_sub_field(slide_title)); ?/h3 /div ?php endwhile; ? /div ?php endif; ?子字段用 get_sub_field() / the_sub_field()支持无限嵌套 repeater。Flexible Content(模块化布局)?php if (have_rows(sections)): ? ?php while (have_rows(sections)): the_row(); get_template_part(flex/ . get_row_layout()); // 把每种布局拆成 flex/layout_name.php endwhile; ? ?php endif; ?flex/text.php 例子section classtext-section div classcontainer ?php echo apply_filters(the_content, get_sub_field(text)); ? /div /section读取其它对象上的字段 | 对象 | 写法 ||—|—|| 选项页(Options Page) | get_field(‘field_name’, ‘option’); || 用户 | get_field(‘field_name’, ‘user_’ . $user_id); || 分类法 | get_field(‘field_name’, ‘term_’ . $term_id); || 附件 | get_field(‘field_name’, $attachment_id); |短代码(让编辑在可视化编辑器里插入)// 在 functions.php 注册 add_shortcode(acf, function($atts) { $a shortcode_atts([field , post false], $atts); return esc_html(get_field($a[field], $a[post])); });使用[acf field”phone”]如需返回图片[acf field”logo” post”option”] 再自己包 img。常用辅助函数// 直接输出一张图已含 alt the_post_thumbnail(medium, [class rounded]); // 获取多张图Gallery 字段 $gallery get_field(gallery); foreach ($gallery as $img) { echo wp_get_attachment_image($img[ID], thumbnail); } // 清除缓存后的新值 wp_cache_flush(); $fresh get_field(field_name, false, false); // 第三参数 false 不格式化调试技巧?php // 看整个字段数组 echo pre, htmlspecialchars(print_r(get_field(repeater_name), true)), /pre; // 看所有自定义字段 echo pre, htmlspecialchars(print_r(get_post_meta(get_the_ID()), true)), /pre; ?性能注意Repeater/Flexible 字段量大时建议开 「本地 JSON」 或 「字段缓存」(ACF PRO 自动)。不要在一个循环里反复 get_field(‘option’)先用变量存起来。一句话总结「当前文章」get_field(‘name’);「选项页」get_field(‘name’, ‘option’);「子字段」get_sub_field(‘name’);「循环」have_rows(‘name’) while 即可。以上代码全部实测可用按场景直接粘贴即可。原文https://www.wpniu.com/article/6686.html