首页 WordPress函数大全 delete_sub_row
购买会员请联系客服,QQ 248758228

delete_sub_row

2020-06-28 / 315阅 / 秦自龙

本视频需要登录以后才能播放

登录

总览

从现有的“中继器”或“灵活内容”子字段值中删除一行数据。

此功能可以在have_rows()循环内部或外部使用。在内部使用时,当前行将用于更新子字段值。在外部使用时,必须指定行和父对象以定位正确的值位置。

请注意,此功能用于修改子字段值。要修改父字段值,请使用delete_row()函数。

参量

delete_sub_row($selector, $row, [$post_id]) 
  • $selector (字符串|数组) (必需) 子字段名称或键,或祖先和行号的数组。
  • $row (int) (必需) 要更新的行号。
  • $post_id (混合) (可选) 保存值的帖子ID。默认为当前帖子。

返回

(布尔)成功更新为true,失败更新为false。

变更记录

  • 在版本5.4.7中添加

删除have_rows()循环内的子行

本示例说明如何从称为“ images”的现有嵌套转发器字段中删除一行数据。此嵌套的转发器字段包含3个子字段(“图像”,“ alt”,“链接”)。

// Loop over all staff members.
if( have_rows('staff_members') ) {
    while( have_rows('staff_members') ) {
        the_row();

        // Delete this staff member's first image.
        delete_sub_row('images', 1);
    }
} 

删除have_rows()循环外的子行

本示例说明如何删除have_rows()循环外的一行数据。在此,为$selector参数提供了一个包含字段名和行号混合的数组。该数组应从左到右读取,父子关系由行号分隔。

请参阅有关索引偏移量的注释。

// Delete the first staff member's first image.
delete_sub_row( array('staff_members', 1, 'images'), 1 );

// Update the first staff member's second image.
delete_sub_row( array('staff_members', 1, 'images'), 2 ); 

笔记

索引偏移

当使用特定的行号作为子字段的目标时,请注意,行号从1开始而不是0。这意味着第一行的索引为1,第二行的索引为2,依此类推。

要从0开始索引,请像这样使用row_index_offset设置。

functions.php

add_filter('acf/settings/row_index_offset', '__return_zero'); 
大家谈论
    我的见解