我有一个包含超过 15 个 ACF 小组的网站。其中一个有一个中继器,6 个字段中的最后一个是 URL(我尝试将其切换为文本,结果相同)。我在我的页面上看到该字段,我将其用作块(古腾堡)。我可以输入一个值,它会“保存”......或者我是这么认为的。如果我刷新页面,它就不再存在(该字段为空)。
现在,我继续切换到可视化编辑器 - 代码视图,然后......它不在那里。没有什么。我想知道:为什么它在我处于经典视图中时显示,而不是在代码视图中显示...显然,如果它不存在,则不会保存!
之后,我自己添加了代码,我看到了什么:它在那里,正在保存,而且仍然在那里。
自己添加代码是一个很大的禁忌,因为我正在为客户构建一个网站......必须有一个解决方案或已知的补丁......
(注意:我没有任何代码可以显示,因为它位于后端......并且与代码无关)
可能原因:字段名称缺失或重复
如https://stackoverflow.com/a/76272395/7733418中所述:
如果字段名称丢失或重复(如果两个或多个字段具有相同的名称),则会导致更新问题。在 ACF 中,“字段名称”充当 ID,因此它们应该存在并且是唯一的。
我遇到了这个问题,并通过删除 /theme-name/acf-json/fr/ 目录中的文件来解决它。我偶尔会遇到这种情况。可能是因为我们使用 WPML(这解释了 /fr/)并且制作该网站的公司使所有字段都可翻译。
通过编辑(或创建)Web 根目录中的 .user.ini 文件来增加最大输入变量。默认情况下,最大输入变量仅为 1,000。
max_input_vars = 2000
如果您有大量文本,您可能需要检查所有这些设置。
memory_limit = 128M
max_input_vars = 2000
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120
然后使用 php 信息文件确认您的更改生效。
可能是原因 1:ACF 字段未保存
我还遇到了自定义字段未保存在后端编辑器中的问题。
在尝试此操作之前,您应该备份网站。如果您不知道该怎么做(保存 wp-content 文件夹、导出数据库),我推荐一个名为“All-in-One Migration”的免费插件来进行备份。
我的 ACF 字段未保存的解决方案:
当我将网站部署到另一台服务器时,这对我很有帮助。有时必须使用这种重复方法重新定义键。
可能是原因2:保存过程无法完成
编辑网络服务器上的 php.ini 文件或联系主机来执行此操作并增加 max_input_vars 和 max_execution_time。 也许字段和值太多,因此超出了允许的最大输入变量。或者由于字段较多,保存过程花费的时间太长,因此达到了最大执行时间,保存过程无法运行到所有字段的末尾。
我需要删除 ACF 组并重新创建它,以便数据更改的保存再次正常工作。
我也遇到这个问题了。 我回到我的现场小组,结果发现我的中继器没有名字,也没有钥匙......
我填满了它们,现在它可以正常工作了。
我已经尝试了几种建议的解决方案。唯一有帮助的是删除 wp-postmeta 表中的字段数据。我建议先备份。