acf_duplicate_field()


WordPressの関数acf_duplicate_field()は、既存のACFフィールドを複製するために使用されます。この関数を利用することで、同じ構造のフィールドを効率的に作成できます。

構文

acf_duplicate_field( $field, $parent );

引数の説明:

  • $field (array) — 複製するフィールドの配列。
  • $parent (mixed) — 複製後のフィールドを紐付ける親要素(通常はフィールドグループ)。

使用例

例1: 単純なフィールド複製

既存のフィールドを複製して同じフィールドグループに追加します。

<?php 
$field = get_field_object( 'field_12345' );
$new_field = acf_duplicate_field( $field, $field['parent'] );
?>

例2: 別のフィールドグループに複製

既存のフィールドを異なるフィールドグループに複製します。

<?php 
$field = get_field_object( 'field_12345' );
$new_group = acf_get_field_group( 'group_67890' );
$new_field = acf_duplicate_field( $field, $new_group['ID'] );
?>

例3: 動的にフィールドを取得して複製

特定の条件に基づいてフィールドを動的に取得し、複製します。

<?php 
$fields = acf_get_fields( 'group_12345' );
foreach ( $fields as $field ) {
    acf_duplicate_field( $field, $field['parent'] );
}
?>

例4: 複製されたフィールドをカスタマイズ

フィールドを複製した後、ラベルを変更します。

<?php 
$field = get_field_object( 'field_12345' );
$new_field = acf_duplicate_field( $field, $field['parent'] );
$new_field['label'] = '新しいラベル';
acf_update_field( $new_field );
?>

例5: フィールドデータを保存後に複製

フィールドを保存してから複製します。

<?php 
$field = get_field_object( 'field_12345' );
acf_update_field( $field );
$new_field = acf_duplicate_field( $field, $field['parent'] );
?>

注意事項

  • フィールドを複製すると、元のフィールドの設定がそのまま引き継がれますが、フィールドキーは新しいものが生成されます。
  • 親要素の指定を間違えると、フィールドが意図しないグループに紐付けられる可能性があります。