Wordpress 定向到帖子页面(edit.php)而不是保存帖子

问题描述 投票:0回答:5

我有一个干净的构建(WordPress 3.9.1运行二十四个主题)。

我已经安装了 WooCommerce 插件并添加了一个产品。

该产品是可变产品,有 65 种变化。

当我链接所有变体并保存时,没有任何问题。但是编辑任何信息(例如库存数量或价格等)并点击“更新”将导致以下问题。

一旦我单击更新,我就会被重定向到 edit.php(帖子页面)并且更改未保存。没有错误,一切似乎都运行得很好。

在逐一删除变体后,我意识到一旦少于 50 个,帖子就会完美更新

我尝试过增加 PHP.ini、.htaccess、wp-config.php 中的内存,但什么都没有。

任何想法都可以,因为我完全迷失在这个想法上。

提前非常感谢。

迈克尔

编辑:实际上,您甚至不必尝试更改新产品的属性。即使只是尝试改变它,也会导致这个问题。

php wordpress variables redirect woocommerce
5个回答
2
投票

我们遇到了类似的问题,我们被重定向到 WordPress 帖子页面 (

/wp-admin/edit.php
),而不是保存帖子。仅当内容字段包含大约 7.500 个字符或更多时,我们才会遇到此问题。低于此计数后,帖子已保存,没有任何问题。

在尝试了多种建议(甚至是此处列出的建议)后,结果发现 PHP 中的临时文件夹存在问题。修复临时文件夹后,保存帖子的问题得到解决。我们偶然发现了这一点,因为在上传媒体文件时,它给出了有关缺少临时文件夹的错误消息。所以我猜 WordPress 仅当帖子超过一定大小(我提到的字符数)时才使用临时文件夹。

希望这对未来的其他人有帮助。


1
投票

我认为您的问题在于您的共享托管设置。一些共享主机会添加最大 MySQL 查询长度作为安全措施。发生的情况是,您的主机看到一个巨大的查询(由于所有的变化)并完全删除该查询。由于您正在执行较小的查询来添加和删除变体,因此直到您想要更新整个产品时,问题才会显现出来。

解决此问题的方法是联系您的托管提供商,让他们将 MySQL 查询长度增加到一个更大的值。您可以在管理面板中自行调整它,它通常被标记为安全功能,所以我将从这里开始。您还可以尝试将 MySQL 配置(通常位于

/etc/mysql/my.cnf
/etc/my.cnf
)文件更新为:

[mysqld]
max_allowed_packet=32M

如果您无法更新配置,那么您肯定需要联系您的托管提供商。


1
投票

对于遇到类似问题的其他人,请务必检查您的主机的模组安全性。我的帖子请求被他们的系统标记为威胁,因此他们关闭了此功能。


1
投票

我一直在寻找类似问题的答案,这就是我发布这篇文章的原因,尽管已经过去了几年。我正在使用 Wordpress 5.7.2 和 Woocommerce 5.3.0。

首先,不要将自己局限于仅在 Wordpress 级别进行诊断。启用 PHP 调试是值得的,例如在php.ini中输入几行(当然,你可以根据自己的需求进行配置):

error_reporting = E_ALL & ~ E_NOTICE
error_log = /errors.log
log_errors = On

就我而言,调试日志中出现以下条目:

PHP Warning: PHP Startup: Unable to create temporary file, Check permissions in temporary files directory. in Unknown on line 0
PHP Warning: PHP Startup: POST data can't be buffered; all data discarded in Unknown on line 0

我比较了我的开发环境的结构,一切正常。结果发现生产环境中没有临时目录(我的就是/tmp)。创建后,一切都开始按预期工作。


0
投票

没有人说临时文件夹放在哪里

© www.soinside.com 2019 - 2024. All rights reserved.