Выбор сохраняется хорошо, но не отображается при предварительном просмотре ни при обновлении, ни при транспортировке postMessage, он появляется только после перезагрузки всей страницы после сохранения. Ниже приведены коды, которые я использовал для настройки WP,
Функция PHP страницы выбора
Код: Выделить всё
function bansta_home_page() {
if ( get_theme_mod( 'bansta_front_page') === 'home-default' ) {
$bansta_home = 'default';
} elseif ( get_theme_mod( 'bansta_front_page' ) === 'home-grid2') {
$bansta_home = 'grid_2';
} elseif ( get_theme_mod( 'bansta_front_page') === 'home-grid3' ) {
$bansta_home = 'grid_3';
} elseif ( get_theme_mod( 'bansta_front_page') === 'home-grid4' ) {
$bansta_home = 'grid_4';
} else {
$bansta_home = 'default';
}
return $bansta_home;
}
$wp_customize->add_setting( 'bansta_front_page', array(
'default' => $bansta_defaults[ 'bansta_front_page' ],
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'bansta_sanitize_select',
'transport' => 'refresh'
));
$wp_customize->add_control( 'bansta_front_page', array(
'label' => __( 'Front Layout', 'bansta' ),
'settings' => 'bansta_front_page',
'section' => 'bansta_section_frontpage',
'type' => 'select',
'choices' => array(
'home-default' => __( 'Default', 'bansta' ),
'home-grid2' => __( 'Grid-2', 'bansta' ),
'home-grid3' => __( 'Grid-3', 'bansta' ),
'home-grid4' => __( 'Grid-4', 'bansta' )
)
));
Код: Выделить всё
( function( $ ) {
wp.customize( 'bansta_front_page', function( newval ) {
newval.bind( function( to ) {
$( '.content-wrapper' ).html( to );
});
});
}) ( jQuery );
Код: Выделить всё
$basta_home_layout = get_theme_mod( 'bansta_front_page', '' );
get_template_part( '/libs/front/home-' .$bansta_home );
Подробнее здесь: https://stackoverflow.com/questions/792 ... -selection