如何根据其他字段值更改选择字段类型的redux选项?

时间:2016-10-04 04:58:47

标签: wordpress select wordpress-theming redux

我的代码如下所示在redux

$fields = array(
    'id'       => 'opt-select',
    'type'     => 'select',
    'title'    => __('Select Option', 'redux-framework-demo'), 
    'subtitle' => __('No validation can be done on this field type', 'redux-framework-demo'),
    'desc'     => __('This is the description field, again good for additional info.', 'redux-framework-demo'),
    // Must provide key => value pairs for select options
    'options'  => array(
        '1' => 'Opt 1',
        '2' => 'Opt 2',
        '3' => 'Opt 3'
    ),
    'default'  => '2',
);

现在,如果设置了标题变体2,我想显示第3个选项。标题变体是另一个字段,它有两个选项,如标题变体1和标题变体2。 如何编写代码来实现这个功能?

1 个答案:

答案 0 :(得分:0)

您可以对任何给定字段使用Redux Framework的required参数。

来自Docs

  

字段可以根据/多个父项链接/要求/折叠   值(S)。这可以通过附加必需的参数来实现,   在任何给定的字段中类似于以下内容:

'required' => array('opt-header-variations','equals','2')
  • 数组的第一个值是将字段链接到的字段ID。
  • 第二个值是要执行的操作。
  • 第三个值是要比较的值。

required参数支持一些运算符,因此您可以做一些逻辑。

一个真实的例子:

Bellow我们设置了两个字段,两个字段都是选择字段类型,但对于任何字段类型都可以使用相同的字段。我们希望使用&#34; opt-select&#34; ID隐藏选择字段,并仅在选择字段&#34; opt-header-variations&#34; <时显示/ strong>值等于2,在这种情况下与&#34;标题变体2&#34;相同选项。

为了做到这一点,我们需要在我们想要有条件地隐藏的选择字段上使用required参数:

'required' => array('opt-header-variations','equals','2'),

$fields = array(
    array (
        'id' => 'opt-header-variations',
        'type' => 'select',
        'title' => __('Header Styles', 'redux-framework-demo'),
        'subtitle' => __('Header Variations', 'redux-framework-demo'),
        'options'  => array(
            '1' => 'Header variation 1',
            '2' => 'Header variation 2'
            ),
        'default' => 1,
    ),
    array (
        'id'       => 'opt-select',
        'type'     => 'select',
        'title'    => __('Select Option', 'redux-framework-demo'), 
        'subtitle' => __('No validation can be done on this field type', 'redux-framework-demo'),
        'desc'     => __('This is the description field, again good for additional info.', 'redux-framework-demo'),
         // Must provide key => value pairs for select options
        'options'  => array(
            '1' => 'Opt 1',
            '2' => 'Opt 2',
            '3' => 'Opt 3'
            ),
        'default'  => '2',
        'required' => array('opt-header-variations','equals','2')
    ),
);

required参数也可以与多个“父”必需值一起使用。如果不满足所有这些条件,则此字段将不可见,并且不会使用输出CSS。一个例子是 如下:

'required' => array( 
    array('layout','equals','1'), 
    array('parent','!=','Testing') 
)