Why Custom Fields Disappear in WordPress and How to Resolve
When you save a post in WordPress, the custom fields you have entered may disappear. This problem is commonly caused by a low value of max_input_vars, a PHP configuration item. This article details the cause of the problem and how to resolve it.
1. Problem Cause: What is max_input_vars?
max_input_vars is
a PHP configuration item that defines the maximum number of input variables that can be processed in a POST or GET request. The default value is set to 1000, but this limit can be exceeded if the number of custom fields is large. This can cause some or all custom fields to disappear when saving.
2. Solution: change the max_input_vars setting
To resolve this issue, the value of max_input_vars
must be increased. There are several ways to set it, but here are the main methods
Method 1: Edit php.ini
Access the server and edit the php.ini
file to increase the value of max_input_vars.
Change the setting as follows and apply it.
; Example of editing php.ini
max_input_vars = 3000
After changing the setting, restart the web server to reflect the change.
Method 2: Edit the .htaccess file
If you cannot edit the php.ini file, you can add the following code to the .htaccess
file to override the settings.
# Example of editing .htaccess
php_value max_input_vars 3000
Method 3: Edit wp-config.php
In some server environments, adding a setting to wp-config.php
may solve the problem, but usually it is necessary to change the setting in
php.ini or
.htaccess
.
3. How to check after changing the settings
After changing the settings, enter the custom fields from the WordPress admin page, save the article, and check if the data is saved without being lost. You can also use the phpinfo() function
to check if the value of max_input_vars
is reflected.
4. Other notes
Setting the max_input_vars
value excessively high may affect server performance. Be sure to set it appropriately within the necessary range.
Conclusion
The problem of custom fields disappearing on save in WordPress can often be solved by changing the max_input_vars
setting. Make the appropriate settings to ensure a comfortable WordPress experience.