[WordPress] ACFでカスタム分類のカスタムフィールドの値を更新する方法

作成日:

Advanced Custom Fields(ACF)でカスタム分類に設定したカスタムフィールドの値をphpで更新する方法は無いものかと探しておりました。

ACF | update_field() http://www.advancedcustomfields.com/resources/functions/update_field/

Description Updates the value of a specific field. Parameters update_field($selector, $value, ); $selector (string) (Required) The field name or field

パッと見た時に、パラメータが「$post_id」とあるので、記事以外のカスタムフィールドの値を更新する際には別の方法を用いる必要があるのかと考えこんでおりましたが、

と、ちゃんと書いてありました。
カスタム分類のIDを入れてもちゃんと動きました。

この時、ただIDを入れるのではなく、サンプルコードにあるように「(カスタム分類名)_ID」とする必要があります。

PHP
/*
*  add a repeater row on a taxonomy!!!
*/
 
$field_key = "repeater_field";
$post_id = "event_123";
$value = get_field($field_key, $post_id);
$value[] = array("sub_field_1" => "Foo", "sub_field_2" => "Bar");
update_field( $field_key, $value, $post_id );

通常、カスタムフィールドの値を更新するだけであれば、ACFの関数を使わなくても、

関数リファレンス/update post meta - WordPress Codex 日本語版 http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/update_post_meta

でいけるのですが、記事以外にカスタムフィールドを付ける場合、値は「wp_postmeta」ではなく、「wp_options」に保存されるので、扱いが変わってくる事になるのでしょうが、ACFはその点もちゃんと踏まえてくれています。

物草 灸太郎

WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。

コメントをどうぞ

  • メールアドレスが公開されることはありません。
  • コメント欄にURLは入力できません。
  • このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。