php - 是否可以在不刷新定制器编辑窗口的情况下更改值?
问题描述
我添加了自己的设置来更改字体。
这是我得到的代码。
$wp_customize->add_setting( 'calendar_title_font', array(
'default' => '',
'sanitize_callback' => 'skyrocket_text_sanitization',
'sanitize_js_callback' => 'skyrocket_google_font_sanitization',
'transport' => 'postMessage',
) );
$wp_customize->add_control( new Skyrocket_Google_Font_Select_Custom_Control( $wp_customize, 'calendar_title_font', array(
'label' => __( 'Font Family', 'blah' ),
'section' => 'calendar_title',
'input_attrs' => array(
'font_count' => '20',
'orderby' => 'popular',
),
) ) );
JS代码
wp.customize( 'calendar_title_font', function( value ) {
value.bind( function( to ) {
$('h2.toolbar-title')
.css('font-family', to );
} );
} );
选择性刷新
$wp_customize->selective_refresh->add_partial( 'calendar_title', array(
'selector' => 'h2.toolbar-title',
'settings' => 'calendar_title_font',
'render_callback' => function() {
echo get_setting( 'calendar_title_font' );
},
) );
我究竟做错了什么?更改字体时,我只需要更新标题所在的部分,即<h2>Title</h2>
. 但是我仍然有完整的定制器编辑窗口正在更新。显然,selective_refresh 有问题,我无法理解它是什么。
谢谢您的帮助。
PS对不起我的英语。
解决方案
也许您需要使用与您使用选择性刷新相同的 setting_id。
您可以尝试 $wp_customize->selective_refresh->add_partial( 'calendar_title_font', ...其余代码
而不是 $wp_customize->selective_refresh->add_partial( 'calendar_title', ...其余代码
推荐阅读
- oracle - 在 Oracle 中将时间从格式转换为 int
- java - 从 Comparable 返回泛型 java.util.function.Function
- visual-studio-code - 如何仅使用键盘在 VSCode 中选择代码块?
- node.js - 需要完成 426 升级
- position - PHPWord 页脚位置
- ajax - 无法在 ajax 中重新启动功能 keydown 的问题
- node.js - 当所有 Readline on('line') 回调完成时退出进程
- ffmpeg - Moviepy 创建创建日期 = 0 的视频
- nlp - 一致性与依赖关系解析与示例
- c# - 条件中间件总是被执行