Support

Account

Home Forums Add-ons Repeater Field Fill up repeater fields with category Reply To: Fill up repeater fields with category

  • Hi !

    Firstly, thanks for your answer, this allow me to move up a bit !

    But i’m still stuck there, here is my code before that i tried to integrate your answer

    function my_load_cat($value, $post_id, $field){
        
    $args = array( 'parent' => 779 );
    $post_categories = wp_get_post_terms( get_the_ID(), 'category', array("fields" => "ids") );
    
    if ( !empty( $post_categories ) ) {
      $args['exclude'] = $post_categories;
    };
    $categories = get_categories( $args );

    Firstly i’ve created a function, and inside of it i ask wp to load only the category that are not belonging to the current post, and that they have the parent’s id as “779”

    foreach (  $categories as $category ) {   
          $value[]=array(
            'field_5cd186302ef1c' => $category->name
          );
      };
      return $value;
    };

    And then i grab all those terms that i placed in a foreach loop, in order to have all of them inside of my repeater field

    }
    add_filter('acf/load_value/name=villes_a_ajouter_III', 'my_load_cat', 10, 3);

    And at last i apply the filter that i want, in order to load all of them.

    But this keep adding me some new row once i clicked on update the post, this is quite a bite a problem

    (the entire code create something like this)

    function my_load_cat($value, $post_id, $field){
        
    $args = array( 'parent' => 779 );
    $post_categories = wp_get_post_terms( get_the_ID(), 'category', array("fields" => "ids") );
    
    if ( !empty( $post_categories ) ) {
      $args['exclude'] = $post_categories;
    };
    $categories = get_categories( $args );
    
    foreach (  $categories as $category ) {   
          $value[]=array(
            'field_5cd186302ef1c' => $category->name
          );
      };
      return $value;
    };
    
    }
    add_filter('acf/load_value/name=villes_a_ajouter_III', 'my_load_cat', 10, 3);

    So i tried to add your answer to my function, and this is creating me something like

    function my_load_cat($value, $post_id, $field){
        
    $args = array( 'parent' => 779 );
    $post_categories = wp_get_post_terms( get_the_ID(), 'category', array("fields" => "ids") );
    
    if ( !empty( $post_categories ) ) {
      $args['exclude'] = $post_categories;
    };
    $categories = get_categories( $args );
    
      if (!empty($value)) {
        // this repeater already has a value do not change it
        return $value
      }
      else{
        foreach (  $categories as $category ) {   
          $value= array(
            array(
            'field_5cd186302ef1c' => $category->name
            )
          );
      };
      return $value;
    };
    
    }
    add_filter('acf/load_value/name=villes_a_ajouter_III', 'my_load_cat', 20, 3);

    But not working, any idea to help me ? Thanks for your answer john !