Обязательный аргумент в функции обратного вызова не работает в Redux Framework
Я создаю параметры моей темы с помощью Redux Framework. В нашем конфигурационном файле я использую функцию обратного вызова, которая, кажется, не работает с требуемым аргументом. Вот конфиг для поля.
Redux::setSection( $opt_name, array(
'title' => __( 'Title', 'redux-framework-demo' ),
'id' => 'switch_buttonset-set',
'desc' => __('Select the Site Title'),
'subsection' => true,
'fields' => array(
array(
'id' => 'opt-button-set',
'type' => 'button_set',
'title' => __( 'My Title', 'redux-framework-demo' ),
'subtitle' => __( 'My Sub Title', 'redux-framework-demo' ),
'desc' => __( 'Some description', 'redux-framework-demo' ),
'options' => array(
'1' => 'Default Title',
'2' => 'Custom Title',
),
'default' => '1'
),
array(
'id' => 'my_id',
'type' => 'callback',
'required' => array('opt-button-set','equals','2'),
'title' => __( 'Test Hidden Field', 'redux-framework-demo' ),
'desc' => __('Some Description'),
'callback' => 'my_callback'
),
А вот мой пример функции обратного вызова
function my_callback(){
echo 'Some callback functions here'
}
Проблема в том, что обязательный аргумент не работает, и поле продолжает оставаться видимым независимо от выбранной опции. Я не нахожу никакой документации относительно этого.
заранее спасибо
1 ответ
На данный момент я думаю, что требуемая опция еще не доступна в полях обратного вызова.
На данный момент вы можете использовать функцию jQuery, чтобы показать или скрыть поле обратного вызова. Вот код, который вам нужен для вашего случая:
function my_callback(){
echo '<fieldset id="my_id" class="redux-field-container redux-field" data-id="my_id" data-type="callback">';
echo 'Some callback functions here'
echo '</fieldset>';
}
add_action('admin_head', 'my_action_javascript');
function my_action_javascript() {
?>
<script type="text/javascript" >
jQuery(document).ready(function($) {
// input#opt-button-set -> This field is hide in you switch, but determine the value of the switch
if ($('input#opt-button-set').val() == 0) {
$('#my_id').hide;
} else {
$('#my_id').show;
};
});
</script>
<?php }