delete_sub_row()
This function will add a row of data to a field
No Hooks.
Returns
(true|false).
Usage
delete_sub_row( $selector, $i, $post_id );
- $selector(required)
- .
- $i
- .
Default:1 - $post_id
- .
Default:false
Changelog
| Since 5.2.3 | Introduced. |
delete_sub_row() delete sub row code ACF 6.8.8
function delete_sub_row( $selector, $i = 1, $post_id = false ) {
// vars
$sub_field = false;
$offset = (int) acf_get_setting( 'row_index_offset' );
$i = (int) $i - $offset;
// get sub field
if ( is_array( $selector ) ) {
$post_id = acf_get_valid_post_id( $post_id );
$sub_field = acf_maybe_get_sub_field( $selector, $post_id, false );
} else {
$post_id = acf_get_loop( 'active', 'post_id' );
$sub_field = get_row_sub_field( $selector );
}
// bail early if no sub field
if ( ! $sub_field ) {
return false;
}
// get raw value
$value = acf_get_value( $post_id, $sub_field );
// ensure array
$value = acf_get_array( $value );
// bail early if index doesn't exist
if ( ! isset( $value[ $i ] ) ) {
return false;
}
// append
unset( $value[ $i ] );
// update
acf_update_value( $value, $post_id, $sub_field );
// return
return true;
}