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

WordPress ACF重复器字段:可选预填字段开发求助

WordPress ACF重复器添加可选预填字段实现方案

一、ACF后台配置步骤

  1. 进入WordPress后台的ACF字段组编辑页面,找到对应菜单的重复器字段(假设字段名为menu_items)。
  2. 给该重复器添加两个子字段,均选择复选框类型(支持单独/同时勾选):
    • 第一个子字段:
      • 字段标签:显示特殊标记(*)
      • 字段名称:item_special_mark
      • 选项设置:仅添加一行,值为show,标签为显示*
      • 布局:按需选择“垂直”或“水平”
    • 第二个子字段:
      • 字段标签:显示Gym标签(下划线)
      • 字段名称:item_gym_tag
      • 选项设置:仅添加一行,值为show,标签为显示gym
  3. 保存字段组,回到菜单编辑页面,即可在每个重复器条目里看到这两个勾选框。

二、前端PHP代码实现

在主题模板文件(如single-menu.php或自定义模板)中,通过ACF函数循环输出菜单内容,并根据勾选状态渲染对应标记:

<?php
// 遍历菜单重复器字段
if (have_rows('menu_items')) :
    while (have_rows('menu_items')) : the_row();
        // 获取原有字段值
        $item_name = get_sub_field('item_name');
        $item_desc = get_sub_field('item_desc');
        $item_price = get_sub_field('item_price');
        // 获取新增勾选状态
        $show_special = get_sub_field('item_special_mark');
        $show_gym = get_sub_field('item_gym_tag');
?>
<div class="menu-item">
    <h3 class="item-title">
        <?php echo esc_html($item_name); ?>
        <!-- 渲染*标记 -->
        <?php if ($show_special && in_array('show', $show_special)) : ?>
            <sup>*</sup>
        <?php endif; ?>
        <!-- 渲染下划线gym标签 -->
        <?php if ($show_gym && in_array('show', $show_gym)) : ?>
            <span class="gym-tag">gym</span>
        <?php endif; ?>
    </h3>
    <p class="item-desc"><?php echo esc_html($item_desc); ?></p>
    <span class="item-price"><?php echo esc_html($item_price); ?></span>
</div>
<?php
    endwhile;
endif;
?>

样式优化建议

将样式移至主题CSS文件,避免内联代码冗余:

.gym-tag {
    text-decoration: underline;
    margin-left: 8px;
    font-size: 0.8em;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:05:20