WordPressでは、Advance Custom Fieldsを使って定型のページを作ることが多いです。
ACFのフィールドちまちま手入力するのはやってられないので、CSV経由でインポートすることで、大量にページを量産できます。
しかし、ACFのカスタムフィールドにインポートできるプラグインは有料のものばかりで、しかも結構高いです。
無料でACF対応のCSVインポートプラグインは、really-simple-csv-importerぐらいです。
really-simple-csv-importerも対応しているACFのフィールドは単純なものだけです。繰り返しフィールドなど複雑なACFのフィールドには対応していません。
この記事では、ACFのフィールドをphp経由で更新する時のポイントをまとめておきたいと思います。
通常のフィールド
ACFの通常のフィールドは、wordpress標準のupdate_post_meta()を使っても更新できるという記事をよく見かけますが、実際やってみるとACFが用意しているupdate_field()を使わないと更新できませんでした。
フィールドの指定がフィールド名でも行けそうな感じなのですが、シリアルキーを指定する方が安全なようです。
各フィールドのシリアルキーはACFの管理画面を見るとわかります。
繰り返しフィールド
繰り返しフィールドもphp経由で更新することができます。こちらもACFのupdate_field()を使います。
こちらの記事が参考になります。
以下は、2つのテキストフィールドを持つ繰り返しフィールドの更新の例です。
<?php
foreach($titles as $key => $title){
$value[] = array(
$series_sub_title_key => $titles[$key],
$series_sub_url_key => $urls[$key]
);
}
update_field( $series_main_key, $value, $post_id );
繰り返しフィールドでも更新の手順はほぼ同じで、意外と簡単です。
まとめ
ACFのフィールドをphpで更新できるようになると、自前でCSVインポートしてACFのフィールドを更新することもできるようになります。
覚えておいて損はありません。