Есть блок с несколькими пунктами. Для каждого пункта задается имя (название подблока).
В
customizer.php:for( $i = 1; $i < 10; $i++ ){
$wp_customize->add_setting(
'test_advantages_name'.$i,
array(
'default' => __( 'Default text', 'test' ),
'sanitize_callback' => 'test_sanitize_text',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
'test_advantages_name'.$i,
array(
'settings' => 'test_advantages_name'.$i,
'section' => 'test_advantages_sec',
'type' => 'text',
'label' => __( 'Name'.$i, 'test' )
)
);
$wp_customize->selective_refresh->add_partial('test_advantages_name'.$i,
array(
'selector' => '.advantages-name_'.$i,
'render_callback' => function() use ($setting_name) {
return nl2br(esc_html(get_theme_mod('test_advantages_name'.$i)));
}
)
);
}
Вывожу
tempalte.php:<div class="row justify-content-center">
<?php
for( $i = 1; $i < 10; $i++ ){
$test_advantages_name = get_theme_mod('test_advantages_name'.$i, __( 'Default text', 'test' ));
if( $test_advantages_name ){ ?>
<div class="col-6 col-md-4">
<h5 class="advantages-name_<?php echo $i ?>">
<?php echo esc_html($test_advantages_name); ?>
</h5>
</div>
<?php }
} ?>
</div>
Все выводится и отлично работает до тех пор пока через внешние настройки начинаю редактировать название каждого пункта. При вводе текст вообще исчезает.
Вопрос: Как сделать refresh в customizer.php для всех (каждого) пунктов блока?