WP定制器:保存控件状态

时间:2016-04-14 作者:takispan

我正在尝试实现一个与wordpress提供的默认自定义背景等效的控件。如果插入图像,它会激活一对其他控件(例如重复、位置等)。

因此,我在标题上方有一个图像,用户可以通过名为“header上方”的选择控件选择是否需要元素。如果没有,则不应显示其他相关控件。

如果选择“否”,我已成功停用其余控件,如果选择其他任何控件,则激活它们。这个problem 是吗when the page is refreshed the controls show up again 即使值保存为“否”。我做错了什么?提前感谢,以下是代码:

wp.customize( \'above-header\', function( value ) {
    value.bind( function( to ) {            
        if ( to == \'no\' ) {
            //If selected \'no\' deactivate related controls
            parent.wp.customize.control(\'img-above-header\').deactivate();
            parent.wp.customize.control(\'parallax-above-header\').deactivate();
            parent.wp.customize.control(\'text-inside-img-above-header\').deactivate();
            parent.wp.customize.control(\'inside-img-above-header\').deactivate();
            //Hide the element
            $( \'.parallax\' ).css( \'display\', \'none\' );                 
        }
        else {
            //Activate the controls
            parent.wp.customize.control(\'img-above-header\').activate();
            parent.wp.customize.control(\'parallax-above-header\').activate();
            parent.wp.customize.control(\'text-inside-img-above-header\').activate();
            parent.wp.customize.control(\'inside-img-above-header\').activate();
            //Show the element
            $( \'.parallax\' ).css( \'display\', \'inherit\' );                
        } 
    } );
} );

1 个回复
SO网友:takispan

找到了解决方案。事实证明,激活、停用功能不是持久的,这意味着如果刷新页面,控件的状态将重置!

因此我使用\'active_callback\' => \'fname\' 在我的customizer.php 为了使更改持久化,fname是函数名,如下所示。

function fname() {
    if ( !strcmp ( get_theme_mod(\'above-header\'), \'no\') == 0  ) {
        return true;
    }
    else {
        return false;
    }
}

相关推荐

JQuery php请求返回一个奇怪的结果

我有一个奇怪的小故障发生在我身上,我不知道我是如何产生它的,或者它是否是正常的。我正在开发自己的插件,当一个足球队/足球队被输入到一个框中时,它会检查它是否已经在数据库中。以下是我的代码行add_action( \'admin_footer\', \'fws_teamcheck_javascript\' ); function fws_teamcheck_javascript() { ?> <script type="text/javascript">