Como criar Widgets com Repeater no Elementor
Use Repeater para blocos dinâmicos, como FAQ, depoimentos e tabelas de preço.
Quando usar Repeater
- FAQ com múltiplas perguntas e respostas.
- Depoimentos com nome, cargo, texto e foto.
- Pricing com vários planos e benefícios.
Fluxo de implementação
- Criar campos no
\Elementor\Repeater. - Adicionar controle principal do tipo REPEATER.
- Iterar itens no
render()com escaping. - Aplicar CSS escopado (
rb-*).
Exemplo (FAQ)
$rep = new \Elementor\Repeater();
$rep->add_control('question', [...]);
$rep->add_control('answer', [...]);
$this->add_control('faq_items', [
'type' => \Elementor\Controls_Manager::REPEATER,
'fields' => $rep->get_controls(),
]);
foreach ($settings['faq_items'] as $item) {
echo '<h3>'.esc_html($item['question']).'</h3>';
echo '<p>'.wp_kses_post($item['answer']).'</p>';
}
Boas práticas
- Sanitizar e escapar tudo.
- Separar HTML/CSS/JS por widget.
- Usar
get_style_depends()eget_script_depends(). - Evitar dependências desnecessárias.