Выберите значение поля, которое не возвращается после сохранения изменений.

Я искал ответ на этот вопрос, но до сих пор мне не повезло … простите меня, если раньше он был отвечен!

В настоящее время я пишу плагин, и я впервые использую Boilerplate для WordPress. Я также считаю, что это или нет, используя поле выбора на странице настроек администратора упомянутого плагина в первый раз.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я сохраняю свои изменения, а все поля ввода возвращают сохраненные значения, в поле выбора нет.

Здесь я создаю функцию поля выбора, которая будет повторно использоваться в плагине:

/** * Creates a select field. * * @since 1.0.0 */ public function field_select( $args ) { $defaults['aria'] = ''; $defaults['blank'] = ''; $defaults['class'] = ''; $defaults['context'] = ''; $defaults['id'] = ''; $defaults['description'] = ''; $defaults['label'] = ''; $defaults['name'] = $this->plugin_name . '-options[' . $args['id'] . ']'; $defaults['selections'] = array(); $defaults['value'] = ''; apply_filters( $this->plugin_name . '-field-select-options-defaults', $defaults ); $atts = wp_parse_args( $args, $defaults ); if ( ! empty( $this->options[$atts['id']] ) ) { $atts['value'] = $this->options[$atts['id']]; } if ( empty( $atts['aria'] ) && ! empty( $atts['description'] ) ) { $atts['aria'] = $atts['description']; } elseif ( empty( $atts['aria'] ) && ! empty( $atts['label'] ) ) { $atts['aria'] = $atts['label']; } include( plugin_dir_path( __FILE__ ) . 'partials/' . $this->plugin_name . '-admin-field-select.php' ); } 

И здесь я добавляю поле настроек, используя add_settings_field :

 add_settings_field( 'background', 'Background Colour', array( $this, 'field_select_text' ), $this->plugin_name . '-customise', $this->plugin_name . '-customise', array( 'name' => 'background', 'id' => 'background', 'selections' => array( 0 => array( 'label' => 'Brand', 'value' => 'brand' ), 1 => array( 'label' => 'Transparent', 'value' => 'transparent' ), 2 => array( 'label' => 'Custom', 'value' => 'custom' ) ) ) ); 

И, наконец, вот разметка для поля select:

 <select aria-label="<?php esc_attr( $atts['aria'] ); ?>" class="<?php echo esc_attr( $atts['class'] ); ?>" id="<?php echo esc_attr( $atts['id'] ); ?>" name="<?php echo esc_attr( $atts['name'] ); ?>"> <?php if ( ! empty( $atts['blank'] ) ) { ?> <option value><?php esc_html_e( $atts['blank'], $this->plugin_name ); ?></option> <?php } foreach ( $atts['selections'] as $selection ) { if ( is_array( $selection ) ) { $label = $selection['label']; $value = $selection['value']; } else { $label = strtolower( $selection ); $value = strtolower( $selection ); } ?> <option value="<?php echo esc_attr( $value ); ?>" <?php selected( $atts['value'], $value ); ?>> <?php esc_html_e( $label, $this->plugin_name ); ?> </option> <?php } ?> 

У кого-нибудь есть идеи вообще? Вероятно, это что-то очевидное с простым решением, и я, несомненно, ударю себя. Но, пожалуйста. ПОМОГИТЕ. МЕНЯ.