
結論:「wp_options」に保存される
ずばり、wp_optionsテーブルにINSERTされます。
また更新があった場合はUPDATEされます。(※option_nameのカラムはUNIQUE KEYになっているため)
※テーブルのプレフィックス「wp_」はそれぞれの環境で読み替えてください
オプションページから入力される値は、option_nameが「options_カスタムフィールド設定画面で設定したフィールド名」の行の「option_value」に入ります。
フィールドタイプがグループの場合や、繰り返しフィールドの場合によってこのoption_nameは変わってくるため、3つのパターンで紹介します。
詳細その1:1行のみのフィールドに入力されたデータの場合
サンプルとして、テキストエリアに入力したデータの様子を紹介します。
フィールドがグループや繰り返しフィールドに内包されていない1行の場合、入力値はoption_nameが「options_カスタムフィールド設定画面で設定したフィールド名」の行の「option_value」に入ります。
options_カスタムフィールド設定画面で設定したフィールド名
この場合、フィールド名をcustom_cssとしているため、option_nameに入るキーはoptions_custom_cssとなります。
データを1行入力して保存し、確認のため、以下のSQL文で確認してみます。
mysql> select * from wp_options where option_name = "options_custom_css";
option_valueに保存されていることが確認できました。
詳細その2:グループ内のフィールドに入力されたデータの場合
サンプルとして、「sns_setting」という名のフィールドタイプがグループ内の、フィールドタイプ「URL」に入力したデータの様子を紹介します。
グループの場合、option_nameのキーは「options_グループのフィールド名_子要素のフィールド名」というルールで名称が割当られます。
options_グループのフィールド名_子要素のフィールド名
上記の例ではoptions_sns_setting_facebook_urlとなります。
データを入力して保存し、確認のため、以下のSQL文で確認してみます。
mysql> select * from wp_options where option_name = "options_sns_setting_facebook_url";
option_valueに保存されていることが確認できました。
詳細その3:繰り返しフィールド内のデータの場合
サンプルとして、フィールドタイプを「繰り返し」に設定したcuisine_lunchというフィールド名に入力した「テキスト」「画像」「テキストエリア」のデータの様子を紹介します。
繰り返しフィールドでは、入力をN行追加することができるため、データ列には番号を割り振る必要があります。
繰り返しフィールドの場合、option_nameのキーは「options_繰り返しのフィールド名_{列番号-1}_子要素のフィールド名」というルールで名称が割当られます。
options_繰り返しのフィールド名_{列番号-1}_子要素のフィールド名
列番号が「-1」されている点に注意してください。
例えば、3列目のcuisine_lunch内のフィールド名priceであれば、option_nameはoption_cuisine_lunch_2_priceとなります。
また、繰り返しフィールドでは「何行入っているか」のデータも入っており、これは「options_繰り返しのフィールド名」のoption_nameを持つ行のoption_valueに保存されています。
例えば、繰り返しフィールド「cuisine_lunch」に保存されている行数は、
mysql> select * from wp_options where option_name = "options_cuisine_lunch";
で取得することが可能です。
41行保存されていることがわかりました。
これらのルールを把握することで、管理画面を使わずデータを一括入稿することも可能になります。
補足:フィールドタイプなどの詳細情報はどこに入ってる?
データの保存場所はご紹介しましたが、そのフィールドが「どんなフィールドタイプ」で、「必須かどうか」や「文字数制限」などの設定値はどこに入っているのでしょうか。
これもオプションページの場合、wp_optionsに入っています。
ずばりoption_nameが「_options_フィールド名」のデータ列に入っています。
ここでoption_valueに入っているfield_5e6f3bd717706は、AdvancedCustomFieldsが自動的に割り振った、フィールド固有のIDです。
フィールド固有のIDは「acf-json」のjsonファイル内などで確認することができます。
このIDを元に設定情報を参照するようになっています。
また、このIDは必ず必要なため、上記で紹介した値だけをINSERTしてもその値を使うことはできませんので、必ず「IDと値のセット」で取り扱っているという点に注意してください。
まとめ
いかがでしたでしょうか?
あまりこれらのMySQLを利用する頻度は少ないかもしれませんが、構造を理解することで、よりスピーディーにデータ入力を行ったり、データ調査を行えるようになります。
- AdvancedCustomFieldsのオプションページから入力した情報は「wp_options」に保存される(INSERTまたはUPDATEされる)
- 入力された値はoption_valueカラムに保存されるが、そのoption_nameには一定のルールで決められたキーが入る
- 1行のみのフィールドに入力されたデータの場合、option_nameは「options_カスタムフィールド設定画面で設定したフィールド名」となる
- グループ内のフィールドに入力されたデータの場合、option_nameは「options_グループのフィールド名_子要素のフィールド名」となる
- 繰り返しフィールド内のデータの場合、option_nameは「options_繰り返しのフィールド名_{列番号-1}_子要素のフィールド名」となる
- 繰り返しフィールドでは「何行入っているか」の値が、option_name「options_繰り返しのフィールド名」のoption_valueに保存されている
- オプションページのフィールド詳細情報(フィールドタイプ、必須条件 など)を管理するレコードもwp_optionsで管理されており、option_name「_options_フィールド名」のoption_valueにフィールド固有のIDが保存されている