使用WP Customize API在插件中为现有设置设置“传输”

时间:2013-11-06 16:48:33

标签: wordpress api transport

我在使用自定义API为现有设置添加“传输”功能时遇到问题。我可以毫无问题地添加和删除设置,但是将传输添加到当前设置似乎并不需要。 js加载没有问题,但仍然使用“刷新”方法。

您是否可以在插件中添加“postMessage Transport”?主题中的这些调用工作正常。

function __construct() {

    add_action( 'customize_register', array( $this, 'base_customize_register' ) );
    add_action( 'customize_preview_init', array( $this, 'base_customize_preview_js' ) );

}   

function base_customize_register( $wp_customize ) {
    $wp_customize->get_setting( 'blogname' )->transport         = 'postMessage';
    $wp_customize->get_setting( 'blogdescription' )->transport  = 'postMessage';
    $wp_customize->remove_section( 'static_front_page');
}

function base_customize_preview_js() {
    wp_enqueue_script( 'base_customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ), '20131008', true );
}

2 个答案:

答案 0 :(得分:0)

看起来这是一个时间问题。遗憾的是,这些部分尚未存在于链中,因此操纵它们并不具有所需的效果。我最终不得不保留处理主题中默认设置的逻辑。

答案 1 :(得分:0)

我也有同样的问题。我通过在add_action函数上使用优先级参数来解决这个问题。

add_action( "customize_register", "wpcb_theme_customize_register",999,1);
function wpcb_theme_customize_register($wp_customize){
    $wp_customize->get_section( 'title_tagline' )->priority = 999;
    $wp_customize->get_section( 'static_front_page' )->priority = 1000;
}

希望这有助于某人:)