Support

Account

Home Forums Gutenberg wp_insert_post() and add acf blocks to the page Reply To: wp_insert_post() and add acf blocks to the page

  • You have to not only set the “normal” field value but also the underscored version like this:

    
      function myAcfGetBlock(
        string $block,
        array $fieldData
      ) {
    
        $fields = [];
        foreach($fieldData as $fieldKey => $fieldValue) {
          $key = 'block_' . $block . '_' . $fieldKey;
          $fields[$key] = $fieldValue;
          $fields['_'.$key] = 'field_' . md5($key);
        }
    
        $json = [
          'name' => 'acf/' . $block,
          'data' => $fields,
          'mode' => 'edit'
        ];
    
        $fields = json_encode($json);
        $acfJson = <<<ACFJSON
    <!-- wp:acf/$block $fields /-->
    ACFJSON;
    
        return $acfJson;
      }
    

    so you can then do something like

    
    wp_insert_post( [
            'post_type' => 'job',
            'post_status' => 'publish',
            'post_title' => 'My Jobname',
            'post_content' => myAcfGetBlock('title', [
              'subtitle' => 'My subtitle'
            ])
          ] );