如何添加shortcode
支持Customizer live preview。我已经使用transport实现了实时预览postMessage
但是,它只是反映了HTML的现状。
我想我需要使用selective_refresh
在自定义程序预览中使用快捷代码。
我不知道如何获取当前HTMLselective_refresh
.
检查下面的代码段。
步骤:1-添加面板、部分、设置(带\'transport\' => \'postMessage\'
) 和控制。
/**
* Add panel
*/
$wp_customize->add_panel( \'my-sample-panel\', array(
\'title\' => __( \'Sample Panel\', \'next\' ),
) );
/**
* Add section
*/
$wp_customize->add_section( \'my-sample-section\', array(
\'title\' => __( \'Sample Section\', \'next\' ),
\'panel\' => \'my-sample-panel\',
) );
/**
* Add setting
*/
$wp_customize->add_setting( \'my-sample-text-option\', array(
\'default\' => \'\',
\'type\' => \'option\',
\'transport\' => \'postMessage\',
) );
/**
* Add control
*/
$wp_customize->add_control( \'my-sample-text-option\', array(
\'section\' => \'my-sample-section\',
\'label\' => __( \'Text / HTML\', \'next\' ),
\'type\' => \'textarea\',
) );
步骤:2-定制器
customizer-preview.js
.
( function( $ ) {
/**
* Text / HTML
*/
wp.customize( \'my-sample-text-option\', function( value ) {
value.bind( function( new_value ) {
jQuery( \'.custom-html-section\' ).html( new_value );
} );
} );
} )( jQuery );
步骤:3-前端HTML
<div class="custom-html-section"></div>
上述代码片段替换目标选择器中的HTML。
我累了Partial support
通过避免Step: 2
部分支持
/**
* Add partial refresh
*/
if ( isset( $wp_customize->selective_refresh ) ) {
$wp_customize->selective_refresh->add_partial( \'my-sample-text-option\', array(
\'selector\' => \'.custom-html-section\',
\'container_inclusive\' => false,
\'render_callback\' => function() {
return get_bloginfo( \'name\', \'display\' );
},
) );
}
在这里,我使用
get_bloginfo( \'name\', \'display\' )
它按预期显示博客名称。
但是,如何从setting
并应用do_shortcode
?
预期如下:
\'render_callback\' => function() {
return do_shortcode( $UPDATED_CONTROL_CONTENTS ); // Expect like this to work shortcode in customizer.
// return get_bloginfo( \'name\', \'display\' );
},