Продолжение ответа
yarovikov :
В целом решение в репозитории рабочее (
https://github.com/cristian-ungureanu/customizer-r...), но есть одно но, что надо в исходном коде дополнительно дописывать поля, потому что они названы одним именем, и чтобы изменить имя поля, то надо менять в исходниках. Простой пример.
Переходим в корень темы и клонируем исходники:
git clone https://github.com/cristian-ungureanu/customizer-repeater
Далее создаем файл
\inc\customizer\init.php со следующим содержимым:
<?php
function true_customizer_init( $wp_customize ) {
$wp_customize->add_section( 'departments', array(
'title' => 'Отделы',
'priority' => 50,
) );
$wp_customize->add_setting( 'customizer_repeater_department_list', array(
'sanitize_callback' => 'customizer_repeater_sanitize',
));
$wp_customize->add_control( new Customizer_Repeater( $wp_customize, 'customizer_repeater_department_list', array(
'label' => esc_html__('Отдел','customizer-repeater'),
'section' => 'departments',
'priority' => 1,
'customizer_repeater_title_control' => true,
) ) );
}
add_action( 'customize_register', 'true_customizer_init' );
Подключаем в файле `functions.php` customizer-repeater и файл `\inc\customizer\init.php`:
<?php
require get_template_directory() . '/customizer-repeater/functions.php';
require get_template_directory() . '/inc/customizer/init.php';
...
В настройках темы необходимо проверить, что всё работает:
Можно вывести список:
$customizer_repeater_department_list = get_theme_mod('customizer_repeater_department_list', json_encode( array(/*The content from your default parameter or delete this argument if you don't want a default*/)) );
/*This returns a json so we have to decode it*/
$customizer_repeater_department_list_decoded = json_decode($customizer_repeater_department_list);
foreach($customizer_repeater_department_list_decoded as $repeater_item){
echo $repeater_item->title;
}