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

如何利用ACF自动合并FirstName与LastName生成FullName字段?

实现ACF自动合并FirstName和LastName生成FullName字段

当然可以实现,下面是两种实用方案,根据你的需求选择:

方案一:保存时自动写入数据库(适合后端需要存储FullName字段的场景)

利用ACF的acf/save_post钩子,在运动员档案(自定义文章类型/用户)保存时,自动拼接FirstName和LastName的值,写入FullName字段。

把以下代码添加到主题的functions.php文件或者自定义插件中:

add_action('acf/save_post', 'auto_generate_full_name', 20);
function auto_generate_full_name($post_id) {
    // 避免在自动保存/修订版本时触发
    if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)) {
        return;
    }

    // 获取FirstName和LastName字段的值(替换成你实际的字段键)
    $first_name = get_field('first_name', $post_id);
    $last_name = get_field('last_name', $post_id);

    // 拼接全名,处理空值情况
    if ($first_name || $last_name) {
        $full_name = trim($first_name . ' ' . $last_name);
        // 更新FullName字段(替换成你实际的字段键)
        update_field('full_name', $full_name, $post_id);
    }
}

注意:代码中的first_name、last_name、full_name需要替换成你在ACF中创建字段时设置的字段键,不是字段标签。

方案二:动态生成(无需存储到数据库)

如果后端只是需要调用全名,不需要在数据库中存储FullName字段,可以用acf/format_value钩子动态返回拼接结果,这样可以省去数据库存储的步骤:

add_filter('acf/format_value/name=full_name', 'dynamic_full_name', 10, 3);
function dynamic_full_name($value, $post_id, $field) {
    $first_name = get_field('first_name', $post_id);
    $last_name = get_field('last_name', $post_id);
    return trim($first_name . ' ' . $last_name);
}

这种方式下,FullName字段可以设置为隐藏,或者前端不显示输入框,调用get_field('full_name')时会自动返回拼接后的结果。

额外提示

  • 如果你的运动员档案是基于用户角色(而非自定义文章类型),上述代码同样适用,只需确保字段键正确即可。
  • 测试时记得创建/编辑一条运动员档案,检查FullName字段是否自动填充成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:40:32