我已经看到了向blogname
:
$wp_customize->get_setting( \'blogname\' )->transport = \'postMessage\';
$wp_customize->selective_refresh->add_partial( \'blogname\', array(
\'selector\' => \'.site-title\',
\'render_callback\' => \'blogname_render_func\',
) );
但是,对于
theme mod?
在我的主题中,我通过Kirki 像这样:
Kirki::add_config(\'opts\', array(
\'capability\' => \'edit_theme_options\',
\'option_type\' => \'theme_mod\',
));
Kirki::add_field(\'opts\', array(
\'settings\' => \'button_navigation\',
\'type\' => \'toggle\',
));
然而,当我尝试时:
$wp_customize->get_setting( \'button_navigation\' )->transport = \'postMessage\';
$wp_customize->selective_refresh->add_partial( \'button_navigation\', array(
\'selector\' => \'.menu-button\',
\'render_callback\' => \'my_nav_render\',
) );
我得到:
警告:从空值创建默认对象
考虑到我在使用get_setting()
.
如果我尝试以下方式:
$wp_customize->get_theme_mod( \'button_navigation\' )->transport = \'postMessage\';
我得到:
致命错误:未捕获错误:调用未定义的方法WP\\u Customize\\u Manager::get\\u theme\\u mod()
如果我移除我设置的零件transport = \'postMessage\'
, 快捷方式图标显示在“自定义程序预览”的正确位置,单击它可以找到正确的控制器。但是,当您修改该值时,整个页面将刷新,而不仅仅是部分页面。我肯定是因为我没有改变transport
类型How do I change it?