]. * @param array $args The arguments. * * @return string */ public function filter_preferred_choice_setting( $setting, $choice, $args ) { // Fail early. if ( ! isset( $args[ $setting ] ) ) { return ''; } if ( null === $choice ) { $per_choice_found = false; foreach ( $args['choices'] as $choice_id => $choice_label ) { if ( isset( $args[ $setting ][ $choice_id ] ) ) { $per_choice_found = true; break; } } if ( ! $per_choice_found ) { return $args[ $setting ]; } return ''; } // If a specific field for the choice is set. if ( isset( $args[ $setting ][ $choice ] ) ) { return $args[ $setting ][ $choice ]; } // Unset all other choices. foreach ( $args['choices'] as $id => $set ) { if ( $id !== $choice && isset( $args[ $setting ][ $id ] ) ) { unset( $args[ $setting ][ $id ] ); } elseif ( ! isset( $args[ $setting ][ $id ] ) ) { $args[ $setting ] = ''; } } return $args[ $setting ]; } /** * Filter arguments before creating the setting. * * @access public * @since 0.1 * @param array $args The field arguments. * @param WP_Customize_Manager $wp_customize The customizer instance. * @return array */ public function filter_setting_args( $args, $wp_customize ) { if ( $args['settings'] !== $this->args['settings'] ) { return $args; } // Set the sanitize-callback if none is defined. if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) { $args['sanitize_callback'] = [ __CLASS__, 'sanitize' ]; } return $args; } /** * Sanitizes background controls * * @static * @access public * @since 1.0 * @param array $value The value. * @return array */ public static function sanitize( $value ) { foreach ( $value as $key => $subvalue ) { $value[ $key ] = \Kirki\Field\Color::sanitize( $subvalue ); } return $value; } /** * Override parent method. No need to register any setting. * * @access public * @since 0.1 * @param WP_Customize_Manager $wp_customize The customizer instance. * @return void */ public function add_setting( $wp_customize ) {} /** * Override the parent method. No need for a control. * * @access public * @since 0.1 * @param WP_Customize_Manager $wp_customize The customizer instance. * @return void */ public function add_control( $wp_customize ) {} /** * Adds a custom output class for typography fields. * * @access public * @since 1.0 * @param array $classnames The array of classnames. * @return array */ public function output_control_classnames( $classnames ) { $classnames['kirki-multicolor'] = '\Kirki\Field\CSS\Multicolor'; return $classnames; } } ( isset( $args['settings'] ) && $args['settings'] && false !== strpos( $args['settings'], $args['option_name'] . '[' ) ) { return $args; } if ( false === strpos( $args['settings'], '[' ) ) { // ? Bagus: in line above, it's obvious that '[' is not found in $args['settings']. But why do we explode it using '[' here? $parts = explode( '[', $args['settings'] ); $final_parts = [ $args['option_name'] ]; foreach ( $parts as $part ) { $final_parts[] = $part; } $args['settings'] = \implode( '][', $final_parts ) . ']'; $args['settings'] = str_replace( $args['option_name'] . '][', $args['option_name'] . '[', $args['settings'] ); } } return $args; } }
Fatal error: Uncaught Error: Class "Kirki\Data\Option" not found in /htdocs/wp-content/plugins/kirki/inc/bootstrap.php:18 Stack trace: #0 /htdocs/wp-content/plugins/kirki/kirki.php(44): require_once() #1 /htdocs/wp-settings.php(526): include_once('/htdocs/wp-cont...') #2 /htdocs/wp-config.php(85): require_once('/htdocs/wp-sett...') #3 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...') #4 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...') #5 /htdocs/index.php(17): require('/htdocs/wp-blog...') #6 {main} thrown in /htdocs/wp-content/plugins/kirki/inc/bootstrap.php on line 18