mirror of
https://ghproxy.net/https://github.com/AlxMedia/magaziner.git
synced 2025-08-28 09:43:30 +08:00
Update to Kirki 4.0.22
This commit is contained in:
parent
2b6ac38550
commit
78edeb1b25
492 changed files with 29668 additions and 39884 deletions
|
@ -0,0 +1,99 @@
|
|||
# control-select
|
||||
|
||||
## Installation
|
||||
|
||||
First, install the package using composer:
|
||||
|
||||
```bash
|
||||
composer require kirki-framework/control-select
|
||||
```
|
||||
|
||||
Make sure you include the autoloader:
|
||||
```php
|
||||
require_once get_parent_theme_file_path( 'vendor/autoload.php' );
|
||||
```
|
||||
|
||||
To add a control using the customizer API:
|
||||
|
||||
```php
|
||||
/**
|
||||
* Registers the control and whitelists it for JS templating.
|
||||
*
|
||||
* @since 1.0
|
||||
* @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
|
||||
* @return void
|
||||
*/
|
||||
add_action( 'customize_register', function( $wp_customize ) {
|
||||
$wp_customize->register_control_type( '\Kirki\Control\Select' );
|
||||
} );
|
||||
|
||||
/**
|
||||
* Add Customizer settings & controls.
|
||||
*
|
||||
* @since 1.0
|
||||
* @param WP_Customize_Manager $wp_customize The WP_Customize_Manager object.
|
||||
* @return void
|
||||
*/
|
||||
add_action( 'customize_register', function( $wp_customize ) {
|
||||
|
||||
// Add settings.
|
||||
$wp_customize->add_setting( 'my_control', [
|
||||
'type' => 'theme_mod',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => 'option-1',
|
||||
'transport' => 'refresh', // Or postMessage.
|
||||
'sanitize_callback' => function( $value ) {
|
||||
if ( ! in_array( $value, [ 'option-1', 'option-2', 'option-3', 'option-3', 'option-4', 'option-5' ], true ) ) {
|
||||
return 'option-1';
|
||||
}
|
||||
return $value;
|
||||
},
|
||||
] );
|
||||
$wp_customize->add_setting( 'my_control_multi', [
|
||||
'type' => 'theme_mod',
|
||||
'capability' => 'edit_theme_options',
|
||||
'default' => [ 'option-1', 'option-2' ],
|
||||
'transport' => 'refresh', // Or postMessage.
|
||||
'sanitize_callback' => function( $value ) {
|
||||
$value = (array) $value;
|
||||
$sanitized = [];
|
||||
|
||||
foreach ( $value as $sub_value ) {
|
||||
if ( ! in_array( $sub_value, [ 'option-1', 'option-2', 'option-3', 'option-3', 'option-4', 'option-5' ], true ) ) {
|
||||
$sanitized[] = $sub_value;
|
||||
}
|
||||
}
|
||||
// We want a max of 2 options.
|
||||
if ( 2 < count( $sanitized ) ) {
|
||||
return array_slice( $sanitized, 0, 2 );
|
||||
}
|
||||
return $sanitized;
|
||||
},
|
||||
] );
|
||||
|
||||
// Add controls.
|
||||
$wp_customize->add_control( new \Kirki\Control\Select( $wp_customize, 'my_control', [
|
||||
'label' => esc_html__( 'My Control', 'theme_textdomain' ),
|
||||
'section' => 'my_section',
|
||||
'choices' => [
|
||||
'option-1' => esc_html__( 'Option 1', 'theme_textdomain' ),
|
||||
'option-2' => esc_html__( 'Option 2', 'theme_textdomain' ),
|
||||
'option-3' => esc_html__( 'Option 3', 'theme_textdomain' ),
|
||||
'option-4' => esc_html__( 'Option 4', 'theme_textdomain' ),
|
||||
'option-5' => esc_html__( 'Option 5', 'theme_textdomain' ),
|
||||
],
|
||||
] ) );
|
||||
$wp_customize->add_control( new \Kirki\Control\Select( $wp_customize, 'my_control_multi', [
|
||||
'label' => esc_html__( 'My Control', 'theme_textdomain' ),
|
||||
'section' => 'my_section',
|
||||
'choices' => [
|
||||
'option-1' => esc_html__( 'Option 1', 'theme_textdomain' ),
|
||||
'option-2' => esc_html__( 'Option 2', 'theme_textdomain' ),
|
||||
'option-3' => esc_html__( 'Option 3', 'theme_textdomain' ),
|
||||
'option-4' => esc_html__( 'Option 4', 'theme_textdomain' ),
|
||||
'option-5' => esc_html__( 'Option 5', 'theme_textdomain' ),
|
||||
],
|
||||
'multiple' => 2,
|
||||
] ) );
|
||||
} );
|
||||
```
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
/**
|
||||
* Override field methods
|
||||
*
|
||||
* @package kirki-framework/control-select
|
||||
* @copyright Copyright (c) 2019, Ari Stathopoulos (@aristath)
|
||||
* @license https://opensource.org/licenses/MIT
|
||||
* @since 1.0
|
||||
*/
|
||||
|
||||
namespace Kirki\Field;
|
||||
|
||||
/**
|
||||
* Field overrides.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
class Dropdown_Pages extends Select {
|
||||
|
||||
/**
|
||||
* Filter arguments before creating the control.
|
||||
*
|
||||
* @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_control_args( $args, $wp_customize ) {
|
||||
if ( $args['settings'] === $this->args['settings'] ) {
|
||||
$args = parent::filter_control_args( $args, $wp_customize );
|
||||
|
||||
$all_pages = get_pages();
|
||||
foreach ( $all_pages as $page ) {
|
||||
$args['choices'][ $page->ID ] = $page->post_title;
|
||||
}
|
||||
}
|
||||
return $args;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
/**
|
||||
* Override field methods
|
||||
*
|
||||
* @package kirki-framework/control-select
|
||||
* @copyright Copyright (c) 2019, Ari Stathopoulos (@aristath)
|
||||
* @license https://opensource.org/licenses/MIT
|
||||
* @since 1.0
|
||||
*/
|
||||
|
||||
namespace Kirki\Field;
|
||||
|
||||
/**
|
||||
* Field overrides.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
class Preset extends Select {
|
||||
|
||||
/**
|
||||
* Filter arguments before creating the control.
|
||||
*
|
||||
* @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_control_args( $args, $wp_customize ) {
|
||||
if ( $args['settings'] === $this->args['settings'] ) {
|
||||
$args = parent::filter_control_args( $args, $wp_customize );
|
||||
|
||||
$args['multiple'] = 1;
|
||||
$args['preset'] = $args['choices'];
|
||||
foreach ( $args['choices'] as $key => $args ) {
|
||||
$args['choices'][ $key ] = $args['label'];
|
||||
}
|
||||
}
|
||||
return $args;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
/**
|
||||
* Override field methods
|
||||
*
|
||||
* @package kirki-framework/control-select
|
||||
* @copyright Copyright (c) 2019, Ari Stathopoulos (@aristath)
|
||||
* @license https://opensource.org/licenses/MIT
|
||||
* @since 1.0
|
||||
*/
|
||||
|
||||
namespace Kirki\Field;
|
||||
|
||||
/**
|
||||
* Field overrides.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
class Select extends ReactSelect {}
|
Loading…
Add table
Add a link
Reference in a new issue