Sugestie pentru simplificarea ACF

De ACF am scris aici. Ce am uitat să precizez este că pot apărea situații în care atingi limitele plugin-ului prin simplul fapt că ori vei lungi formularul ori vei dubla o grămadă de field-uri. Din fericire, poți face un plugin foarte simplu ce grupează mai multe field-uri. De exemplu, pentru un slider ai putea folosi acest snippet:

class SliderSettings extends acf_field {
  function __construct() {
    $this->name     = 'slider_settings';
    $this->label    = 'Slider Settings';
    $this->category = 'Custom';

    $this->defaults = array(
      'autoplay' => 0,
      'title'    => ''
    );

    $this->l10n = array(
      'error' => __('Error! Please enter a value', 'acf-slider_settings'),
    );
    parent::__construct();
  }


  function render_field( $field ) {
    $value = $field['value'];
    $autoplay = isset( $value['autoplay'] ) ? $value['autoplay'] : $this->defaults['autoplay'];
    $title    = isset( $value['title'] ) ? $value['title'] : $this->defaults['title'];
    ?>
    <label>Slider Title <input type="text" name="<?php echo $field['name'] ?>[title]" value="<?php echo esc_attr( $title ) ?>" /></label>
    <label>Auto Play (in seconds)<input type="text" name="<?php echo $field['name'] ?>[autoplay]" value="<?php echo esc_attr( $autoplay ) ?>" /></label>
    <?php
  }
}

new SliderSettings();

Sigur, poți pune orice element de formular în metoda render_field. Rezultatul arată cam așa:

De precizat că, atunci când folosești get_field() în frontend vei primi un array de forma:

array(
  'title'    => "foo",
  'autoplay' => 10
)

Atât :smile:

Sau ACF Repeater Field?

@vlad nu înțeleg întrebarea. Se poate folosi și cu Repeater, dar merge și la field-uri normale.

(în plus, de la V5 nu mai există plugin-uri extra, există doar varianta pro vs varianta lite)