delete_sub_field()


WordPress関数delete_sub_field()は、Advanced Custom Fields (ACF) プラグインのリピーターフィールドやフレキシブルコンテンツフィールド内のサブフィールドの値を削除するために使用されます。

構文

delete_sub_field();

例 1: 現在の投稿内のサブフィールドを削除

現在の投稿のコンテキスト内でリピーターフィールドの特定のサブフィールドの値を削除します。

<?php
if ( have_rows('repeater_field_name') ) {
    while ( have_rows('repeater_field_name') ) {
        the_row();
        delete_sub_field('sub_field_name');
    }
}
?>

例 2: 条件付きでサブフィールドを削除

特定の条件を満たす場合のみ、サブフィールドの値を削除します。

<?php
if ( get_sub_field('sub_field_name') === '削除する値' ) {
    delete_sub_field('sub_field_name');
}
?>

例 3: 複数のサブフィールドを削除

リピーターフィールド内の複数のサブフィールドを一度に削除します。

<?php
if ( have_rows('repeater_field_name') ) {
    while ( have_rows('repeater_field_name') ) {
        the_row();
        delete_sub_field('sub_field_name_1');
        delete_sub_field('sub_field_name_2');
    }
}
?>

例 4: フレキシブルコンテンツ内のサブフィールドを削除

フレキシブルコンテンツフィールドの特定のレイアウトに基づいてサブフィールドを削除します。

<?php
if ( have_rows('flexible_content_field_name') ) {
    while ( have_rows('flexible_content_field_name') ) {
        the_row();
        if ( get_row_layout() === 'layout_name' ) {
            delete_sub_field('sub_field_name');
        }
    }
}
?>

例 5: ユーザー入力に基づいてサブフィールドを削除

ユーザーの入力に基づいて特定の値を削除します。

<?php
$input_value = 'ユーザー入力値';
if ( have_rows('repeater_field_name') ) {
    while ( have_rows('repeater_field_name') ) {
        the_row();
        if ( get_sub_field('sub_field_name') === $input_value ) {
            delete_sub_field('sub_field_name');
        }
    }
}
?>

注意事項

  • 削除されたデータは元に戻せません。実行する前にバックアップを取ることをお勧めします。
  • コンテキストが正しく設定されていない場合、この関数は意図した通りに動作しない可能性があります。