概要
update_field は、Advanced Custom Fields (ACF) プラグインで特定のフィールドの値を更新します。この関数は、カスタムフィールドの値をプログラムmatically変更する必要がある場面で非常に有用です。次のようなケースでよく使用されます:
- 投稿やページのカスタムフィールドを編集する
- ユーザープロファイルのカスタムフィールドを更新する
- カスタムオプションページの値を変更する
- フォーム送信時にカスタムフィールドの値を保存する
- WooCommerceの商品カスタム属性を更新する
- 自動化されたインポートやエクスポート処理の一部としてフィールドを更新する
構文
update_field( $field_key, $value, $post_id );
パラメータ
$field_key: 更新対象のフィールドのキーまたはフィールドID$value: 新しい値$post_id: 更新対象の投稿またはページのID。指定しない場合は、現在の投稿IDが使用されます。
戻り値
成功すれば true を返し、失敗すれば false を返します。
使用可能なバージョン
- Advanced Custom Fields (ACF) バージョン: 5.x 以上
- WordPress バージョン: 4.0 以上
この関数のアクションでの使用可能性
| アクション | 使用可能 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | 〇 |
| wp_roles_init | |
| setup_theme | 〇 |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | 〇 |
| send_headers | |
| parse_query | |
| pre_get_posts | 〇 |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
-
カスタムフィールドの更新
- 投稿ID 123 のカスタムフィールド ‘my_custom_field’ に値 ‘新しい値’ を設定します。
update_field('my_custom_field', '新しい値', 123); -
ユーザープロファイルのカスタムフィールド更新
- ユーザーID 5 のカスタムフィールド ‘user_bio’ に ‘私についての情報’ を設定します。
update_field('user_bio', '私についての情報', 'user_5'); -
オプションページにカスタムフィールド値を設定
- ACFオプションページに ‘site_info’ というフィールドの値として ‘日本のサイト’ を設定します。
update_field('site_info', '日本のサイト', 'options'); -
WooCommerce製品のカスタムフィールドを更新
- 商品ID 42 のカスタムフィールド ‘custom_price’ に値を設定します。
update_field('custom_price', 2500, 42); -
フォーム送信時にカスタムフィールドを保存
- フォームが送信されたときに特定のフィールドを更新する処理の例。
if ($_SERVER['REQUEST_METHOD'] == 'POST') { update_field('form_field', $_POST['form_field_value'], get_the_ID()); }
これらのサンプルコードは、ACFのupdate_field 関数の使用方法を示しており、さまざまなシナリオでの使い方をサポートしています。引用元は特にはありませんが、ACFの公式ドキュメントを参照することをお勧めします。