GC_Customize_Setting::__construct()
最后更新于:2021-11-27 08:49:12
GC_Customize_Setting::__construct( GC_Customize_Manager$manager, string$id, array$args=array())Constructor.
参数
- $manager
-
(GC_Customize_Manager) (Required) Customizer bootstrap instance.
- $id
-
(string) (Required) A specific ID of the setting. Can be a theme mod or option name.
- $args
-
(array) (Optional) Array of properties for the new Setting object.
-
‘type’
(string) Type of the setting. Default ‘theme_mod’. -
‘capability’
(string) Capability required for the setting. Default ‘edit_theme_options’ -
‘theme_supports’
(string|string[]) Theme features required to support the panel. Default is none. -
‘default’
(string) Default value for the setting. Default is empty string. -
‘transport’
(string) Options for rendering the live preview of changes in Customizer. Using ‘refresh’ makes the change visible by reloading the whole preview. Using ‘postMessage’ allows a custom JavaScript to handle live changes. Default is ‘refresh’. -
‘validate_callback’
(callable) Server-side validation callback for the setting’s value. -
‘sanitize_callback’
(callable) Callback to filter a Customize setting value in un-slashed form. -
‘sanitize_js_callback’
(callable) Callback to convert a Customize PHP setting value to a value that is JSON serializable. -
‘dirty’
(bool) Whether or not the setting is initially dirty when created.
Default value: array()
-
‘type’
源文件
文件: gc-includes/class-gc-customize-setting.php
public function __construct( $manager, $id, $args = array() ) {
$keys = array_keys( get_object_vars( $this ) );
foreach ( $keys as $key ) {
if ( isset( $args[ $key ] ) ) {
$this->$key = $args[ $key ];
}
}
$this->manager = $manager;
$this->id = $id;
// Parse the ID for array keys.
$this->id_data['keys'] = preg_split( '/[/', str_replace( ']', '', $this->id ) );
$this->id_data['base'] = array_shift( $this->id_data['keys'] );
// Rebuild the ID.
$this->id = $this->id_data['base'];
if ( ! empty( $this->id_data['keys'] ) ) {
$this->id .= '[' . implode( '][', $this->id_data['keys'] ) . ']';
}
if ( $this->validate_callback ) {
add_filter( "customize_validate_{$this->id}", $this->validate_callback, 10, 3 );
}
if ( $this->sanitize_callback ) {
add_filter( "customize_sanitize_{$this->id}", $this->sanitize_callback, 10, 2 );
}
if ( $this->sanitize_js_callback ) {
add_filter( "customize_sanitize_js_{$this->id}", $this->sanitize_js_callback, 10, 2 );
}
if ( 'option' === $this->type || 'theme_mod' === $this->type ) {
// Other setting types can opt-in to aggregate multidimensional explicitly.
$this->aggregate_multidimensional();
// Allow option settings to indicate whether they should be autoloaded.
if ( 'option' === $this->type && isset( $args['autoload'] ) ) {
self::$aggregated_multidimensionals[ $this->type ][ $this->id_data['base'] ]['autoload'] = $args['autoload'];
}
}
}