Home Forums Add-ons Repeater Field set_sub_field? add_sub_field?


set_sub_field? add_sub_field?

  • I’m trying to sync data and the fields I want to change reside in a repeater field.

    How do I go about setting the properties of a sub_field programmatically?

    And is it possible to create a new repeater object programmatically as well?

    $newValue = 'XYZ';
    if( get_field('repeater') )
    	while( has_sub_field('repeater') )
    		$variable = get_sub_field('sub_field');
    		if($variable !=== $newValue){
                         // set new value
                         set_sub_field('sub_field', $newValue);
    } else {
       // add new entry if not found
       add_sub_field('repeater', array('sub_field' => $newValue));
  • Hi @jgraup

    For updating a sub field, you could use update_sub_field(...) method. Here is the link: update_sub_field()

    And creating a repeater field programmatically is possible. Export the PHP code. From your wp-admin, go to Custom fields > import/export. To update the data for the repeater field, use update_field(...) method. Make sure to use the $field_key for the reference. Have a look at the docs for more info: update_field()

  • Thank-you. I’m not sure how I missed update_sub_field(...) but I did. After messing with this stuff I found a much easier solution using the get_field_object(...) and update_field(...)

    $repeater = 'tracks';
    // get the object w/info and value
    $rObj = get_field_object($repeater, $video_id);
    $rKey = $rObj['key'];
    $rValue = $rObj['value'];
    // adjust the value of any object/row directly
    $rValue[0]['srclang'] = 'pwnd';
    // add new object/row to the repeater field
    'label' => 'The label',
    'src' => 'The src',
    'srclang' => 'The srclang',
    'kind' => 'captions');
    // update the repeater
  • Hi @jgraup

    I am glad you found an easier solution and thanks for the share.

    Have a nice day!

Viewing 4 posts - 1 through 4 (of 4 total)

The topic ‘set_sub_field? add_sub_field?’ is closed to new replies.