【Advanced Custom Fields】カスタムフィールドの登録上限を変更する方法
WordPressプラグインの「Advanced Custom Fields」を使用していると、登録したはずのカスタムフィールドが消えてしまう場合があります。
プラグインの設定を見直しても問題が解決しない場合、サーバーやPHPのphp.iniの設定に問題がある可能性があります。
この記事では、そのような状況に直面した場合の原因と解決方法を詳しく説明します。
この記事の目次を表示
php.iniのmax_input_varsの設定が原因
max_input_varsとは
max_input_vars
は、PHP5.3.9から導入された設定で、1度のリクエストで送信出来るPOST数を最大値を設定出来ます。
この設定はphp.iniファイルで設定されていて、デフォルトでは「1000」となっています。
max_input_vars
設定が存在する理由は、Webアプリケーションがユーザーからの大量のデータを処理する際に、サーバーのリソースを効率的に管理するためです。
この設定により、1つのリクエストに含まれるPOST数が制限され、サーバーの負荷やパフォーマンスに影響を与える可能性が軽減されます。
現在の設定を確認
PHPのphpinfo()
関数を使用すると、簡単にmax_input_vars
の現在の設定値を確認出来ます。
<?php <?php phpinfo(); ?>
この画像のサーバーでは、max_input_vars
の設定は「1000」であり、デフォルトの設定のままということがわかります。
カスタムフィールドの登録上限を変更する方法
ここからが本題です。
「Advanced Custom Fields」で登録したカスタムフィールドが消える場合の解決方法を紹介します。
同様に、「Smart Custom Fields」や「Custom Field Suite」など他のカスタムフィールドを管理するプラグインも、以下の方法で解決出来ます。
解決方法は非常に簡単で、max_input_vars
の設定値を変更することです。
変更方法は「.htaccess」を利用する方法と、「php.ini」を利用する方法の2つがあります。
PHPのini_set()
関数で変更することは出来ないので注意が必要です。
.htaccessの場合
以下のように、「.htaccess」に設定を追加します。
php_value max_input_vars 2000
この例では、上限を2000に変更しています。
php.iniの場合
以下のように、「php.ini」に設定を追加します。
max_input_vars = 2000
この例では、上限を2000に変更しています。
まとめ
いかがでしたか?
「Advanced Custom Fields」などで登録したカスタムフィールドが消える場合、プラグインの設定が原因ではなく、php.iniのmax_input_vars
の設定が原因であることがあります。
この上限をアップすることはセキュリティ的に好ましくありませんが、この設定を変更する場合は本当に必要かどうか検討した上で変更するようにしましょう。