The repeater control lets you create repeatable fields. Fields can be cloned, deleted and sorted via Drag & Drop. Use the fields
argument to setup the field controls.
class Prefix_Element_Posts extends BricksElement { // Set builder controls public function set_controls() { $this->controls['exampleRepeater'] = [ 'tab' => 'content', 'label' => esc_html__( 'Repeater', 'bricks' ), 'type' => 'repeater', 'titleProperty' => 'title', // Default 'title' 'default' => [ [ 'title' => 'Design', 'description' => 'Here goes the description for repeater item.', ], [ 'title' => 'Code', 'description' => 'Here goes the description for repeater item.', ], [ 'title' => 'Launch', 'description' => 'Here goes the description for repeater item.', ], ], 'placeholder' => esc_html__( 'Title placeholder', 'bricks' ), 'fields' => [ 'tetitlext' => [ 'label' => esc_html__( 'Title', 'bricks' ), 'type' => 'text', ], 'description' => [ 'label' => esc_html__( 'Description', 'bricks' ), 'type' => 'textarea', ], ], ]; } // Render element HTML public function render() { $items = $this->settings['exampleRepeater']; if ( count( $items ) ) { foreach ( $items as $item ) { echo '<h4>' . $item['title'] . '</h4>'; echo '<p>' . $item['description'] . '</p>'; } } else { esc_html_e( 'No items defined.', 'bricks' ); } } }