2016-10-04 5 views
2

Мой код, как показано ниже в 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 установлен. Изменение заголовка - это другое поле, которое имеет два варианта, такие как изменение заголовка 1 и изменение заголовка 2. Как написать код для достижения этой функциональности?

ответ

0

Аргумент required Redux Framework для любого заданного поля.

От Docs:

Поля могут быть связаны/требуется/сложить в соответствии с/кратной величины (ов) родительского . Это достигается путем добавления необходимого аргумента, подобное приведенному ниже, в любой области:

'required' => array('opt-header-variations','equals','2') 
  • Первое значение массива является поле ID, в котором, чтобы связать поле с.
  • Второе значение - операция, выполняемая.
  • Третье значение - это значение для сравнения.

Аргумент required поддерживает несколько операторов, поэтому вы можете сделать некоторую логику.


Реальный пример:

пыльник мы устанавливаем два поля, как отборное типы полей, но он будет работать так же для любого типа поля. Мы хотим скрыть поле выбора с помощью «opt-select» id и показать его только в том случае, если поле выбора «opt-header-варианты» значение равно 2, в этом случае то же, что и вариант «Вариант заголовка 2» ,

Для того, чтобы сделать это, мы должны использовать 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') 
) 
Смежные вопросы