如何将可视化编辑快捷键添加到主题模式?

时间:2017-07-10 作者:dodov

我已经看到了向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?

1 个回复
SO网友:Taj Khan

您需要使用kirki的部分刷新功能

\'transport\' => \'postMessage\',
    \'partial_refresh\' => array( 
    \'my_nav_render_setting\' => array( 
        \'selector\' => \'.menu-button\', 
        \'render_callback\' => \'my_nav_render\', 
    ) ),

结束

相关推荐