个性化阅读
专注于IT技术分析

如何在WordPress Customizer实时预览中阻止seciton刷新来删除段落符?

我已经将自己的设置添加到Wordpress定制器中并进行了设置, 以便使用” postMessage”方法实时预览。与当我编辑链接到段落文本的字段时, 它几乎完美地工作, 预览不显示段落中的换行符。但是, 这是暂时的, 一旦关闭了定制器或刷新了页面, 段落间隙就会重新出现。

我正在使用以下代码在customizer.php中定义Customizer部分:

// About Section Text
$wp_customize->add_setting( 'about__text' , array(
    'default'   => 'Lorem ipsum dolor sit amet consectetur, adipisicing elit. Blanditiis, odit unde magnam dolores quasi voluptas, impedit a nam inventore atque eaque nobis possimus officiis deleniti quisquam animi deserunt ad ipsa sapiente illo?', 'transport' => 'postMessage', ) );

// About Section Text (CONTROL)
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'about__text', array(
    'label'      => __( 'About Section Content:', 'mytheme' ), 'section'    => 'edit__homepage--section', 'settings'   => 'about__text', 'priority'   => 3, 'type'       => 'textarea'
) ) );

我正在使用以下代码在index.php文件中显示以上主题mod:

    <div class="about__text">
      <?php echo wpautop(get_theme_mod('about__text')); ?>
    </div>

这是我的jQuery:

( function( $ ) {
    wp.customize( 'about__text', function( value ) {
        value.bind( function( newVal ) {
            $( '.about__text' ).html( newVal );
        } );
    } );
} )( jQuery );

我试过尝试使用不同的jquery对象, 例如text()和contents(), 但是它们要么具有相同的问题, 要么根本无法工作。

有人知道我是否有办法获得JavaScript预览来纪念段落样式?也许像wpautop()的javascript版本?


#1


你可以像这样使用选择性刷新。值呈现在服务器端, 因此不需要额外的JS。而且, 由于只有选定的包装器元素可以刷新, 因此它比Customizer中的整页重新加载效率更高。在以下示例中, 仅刷新.about__text中的内容。由于渲染是在服务器端完成的, 因此无需寻找wpautop函数的JS替代方法。我相信这将是你提到的问题的另一种选择。

function wpso_customize_register( $wp_customize ) {
    $wp_customize->selective_refresh->add_partial(
        'about__text', array(
            'selector'        => '.about__text', 'render_callback' => function(){
                echo wp_kses_post( wpautop( get_theme_mod('about__text') ) );
            }, )
    );
}
add_action( 'customize_register', 'wpso_customize_register' );
赞(0)
未经允许不得转载:srcmini » 如何在WordPress Customizer实时预览中阻止seciton刷新来删除段落符?

评论 抢沙发

评论前必须登录!