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

如何强制Gutenberg自定义ACF区块始终显示预览模式?

强制ACF自定义区块始终显示预览模式

你遇到的问题根源是:在编辑器里切换区块模式(预览/编辑)后,这个选择会被保存到区块属性中,直接覆盖了block.json里的默认配置。要实现每次访问都强制显示预览模式,可以从以下两个层面处理:

1. 后端强制(覆盖保存的模式设置)

在主题的functions.php或者自定义插件中添加以下代码,通过ACF钩子强制指定区块的渲染模式:

add_filter('acf/load_block', function($block) {
    // 替换成你的区块slug,比如你的区块名称是acf/hero
    if ($block['name'] === 'acf/hero') {
        $block['mode'] = 'preview';
    }
    return $block;
});

这段代码会在区块加载时,强制把模式重置为preview,不管之前保存的是什么状态,确保前端和编辑器打开时都用预览模式。

2. 编辑器端锁定(防止用户切换模式)

如果想彻底禁止用户在编辑器里切换到编辑模式,可以添加一段JavaScript代码,监听区块属性变化,自动把模式切回预览:

document.addEventListener('DOMContentLoaded', () => {
    wp.data.subscribe(() => {
        const blocks = wp.data.select('core/block-editor').getBlocks();
        blocks.forEach(block => {
            if (block.name === 'acf/hero' && block.attributes.mode !== 'preview') {
                wp.data.dispatch('core/block-editor').updateBlockAttributes(block.clientId, {
                    mode: 'preview'
                });
            }
        });
    });
});

把这段代码放到你的区块自定义JS文件里,或者通过后台脚本加载到编辑器页面,就能阻止用户手动切换到编辑模式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:19:55