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

如何为Advanced Custom Fields自定义字段设置page slug默认值

实现方案

这个需求完全可以实现。ACF后台的默认值设置项仅支持静态内容,无法直接读取当前页面的动态属性,不需要额外安装插件,通过ACF官方提供的钩子就能完成需求,逻辑上不会破坏原有字段功能,也不会覆盖你手动填写过的字段内容。

  • 首先在ACF后台把page_slug字段的默认值输入框留空,不要填任何静态内容
  • 把下面的代码添加到当前主题的functions.php文件,或者你自己搭建的自定义功能插件里:
add_filter('acf/load_value/name=page_slug', 'set_page_slug_default_value', 10, 3);
function set_page_slug_default_value($value, $post_id, $field) {
    // 已有内容的字段不做处理,避免覆盖手动填写的内容
    if ($value !== '' && $value !== null) {
        return $value;
    }
    // 仅针对页面(page)类型生效,需要适配其他文章类型可以修改此处判断
    if (get_post_type($post_id) !== 'page') {
        return $value;
    }
    // 读取当前页面的slug作为字段值
    $current_slug = get_post_field('post_name', $post_id);
    return $current_slug ?: $value;
}

注意事项

  • 新建页面时如果还没保存过草稿/没有触发系统自动生成slug,字段会暂时显示为空,第一次保存页面生成slug后,字段会自动填充对应的slug值
  • 如果需要强制字段值永远和页面slug保持同步(哪怕手动修改过字段也会被覆盖),删掉代码里判断$value是否为空的那段逻辑即可,非特殊需求不建议这么设置

相关配置界面参考:
ACF自定义字段配置界面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:33:33