mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-25 10:38:11 +01:00
3ea8930f37
Welcome to the bundled themes family! Twenty Twenty-One is a blank canvas for your ideas, making the block editor your best brush. Theme development to this point has taken place on GitHub. See: https://github.com/WordPress/twentytwentyone/. Props poena, melchoyce, luminuu, elmastudio, bethsoderberg, williampatton, aristath, jffng, kjellr, jeffikus, audrasjb, fabiankaegy, mukesh27, dingo_d, kellylawrence, acosmin, whyisjake, metodiew, ryelle, nielslange, littlebigthing, mahesh901122, zebulan, kishanjasani, lukecavanagh, scruffian, abhijitrakas, utz119, sudoshreyansh, kau-boy, justinahinon, joostdevalk, bduclos, hareesh-pillai, mager19, rolfsiebers, webmigrates, sresok, guidooffermans, francina, marybaum, hareshlive, navanathbhosale, afercia, richtabor, joyously, sarahricker, nrqsnchz, glauberglauber, sabernhardt, kraftbj, ItsJonQ, joen, CTMartin0, decrecementofeliz, bhautikvirani. See #51526. Built from https://develop.svn.wordpress.org/trunk@49216 git-svn-id: http://core.svn.wordpress.org/trunk@48978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
193 lines
4.7 KiB
PHP
193 lines
4.7 KiB
PHP
<?php
|
|
/**
|
|
* Customizer settings for this theme.
|
|
*
|
|
* @package WordPress
|
|
* @subpackage Twenty_Twenty_One
|
|
* @since 1.0.0
|
|
*/
|
|
|
|
if ( ! class_exists( 'Twenty_Twenty_One_Customize' ) ) {
|
|
/**
|
|
* Customizer Settings.
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
class Twenty_Twenty_One_Customize {
|
|
|
|
/**
|
|
* Constructor. Instantiate the object.
|
|
*
|
|
* @access public
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
public function __construct() {
|
|
add_action( 'customize_register', array( $this, 'register' ) );
|
|
}
|
|
|
|
/**
|
|
* Register customizer options.
|
|
*
|
|
* @access public
|
|
*
|
|
* @since 1.0.0
|
|
*
|
|
* @param WP_Customize_Manager $wp_customize Theme Customizer object.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function register( $wp_customize ) {
|
|
|
|
// Change site-title & description to postMessage.
|
|
$wp_customize->get_setting( 'blogname' )->transport = 'postMessage';
|
|
$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
|
|
|
|
// Add partial for blogname.
|
|
$wp_customize->selective_refresh->add_partial(
|
|
'blogname',
|
|
array(
|
|
'selector' => '.site-title',
|
|
'render_callback' => array( $this, 'partial_blogname' ),
|
|
)
|
|
);
|
|
|
|
// Add partial for blogdescription.
|
|
$wp_customize->selective_refresh->add_partial(
|
|
'blogdescription',
|
|
array(
|
|
'selector' => '.site-description',
|
|
'render_callback' => array( $this, 'partial_blogdescription' ),
|
|
)
|
|
);
|
|
|
|
// Add "display_title_and_tagline" setting for displaying the site-title & tagline.
|
|
$wp_customize->add_setting(
|
|
'display_title_and_tagline',
|
|
array(
|
|
'capability' => 'edit_theme_options',
|
|
'default' => true,
|
|
'sanitize_callback' => array( __CLASS__, 'sanitize_checkbox' ),
|
|
)
|
|
);
|
|
|
|
// Add control for the "display_title_and_tagline" setting.
|
|
$wp_customize->add_control(
|
|
'display_title_and_tagline',
|
|
array(
|
|
'type' => 'checkbox',
|
|
'section' => 'title_tagline',
|
|
'label' => esc_html__( 'Display Site Title & Tagline', 'twentytwentyone' ),
|
|
)
|
|
);
|
|
|
|
/**
|
|
* Add excerpt or full text selector to customizer
|
|
*/
|
|
$wp_customize->add_section(
|
|
'excerpt_settings',
|
|
array(
|
|
'title' => esc_html__( 'Excerpt Settings', 'twentytwentyone' ),
|
|
'priority' => 120,
|
|
)
|
|
);
|
|
|
|
$wp_customize->add_setting(
|
|
'display_excerpt_or_full_post',
|
|
array(
|
|
'capability' => 'edit_theme_options',
|
|
'default' => 'excerpt',
|
|
'sanitize_callback' => function( $value ) {
|
|
return 'excerpt' === $value || 'full' === $value ? $value : 'excerpt';
|
|
},
|
|
)
|
|
);
|
|
|
|
$wp_customize->add_control(
|
|
'display_excerpt_or_full_post',
|
|
array(
|
|
'type' => 'radio',
|
|
'section' => 'excerpt_settings',
|
|
'label' => esc_html__( 'On archive pages, posts show:', 'twentytwentyone' ),
|
|
'choices' => array(
|
|
'excerpt' => esc_html__( 'Summary', 'twentytwentyone' ),
|
|
'full' => esc_html__( 'Full text', 'twentytwentyone' ),
|
|
),
|
|
)
|
|
);
|
|
|
|
// Background color.
|
|
// Include the custom control class.
|
|
include_once get_theme_file_path( 'classes/class-twenty-twenty-one-customize-color-control.php' ); // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound
|
|
|
|
// Register the custom control.
|
|
$wp_customize->register_control_type( 'Twenty_Twenty_One_Customize_Color_Control' );
|
|
|
|
// Get the palette from theme-supports.
|
|
$palette = get_theme_support( 'editor-color-palette' );
|
|
|
|
// Build the colors array from our theme-support.
|
|
$colors = array();
|
|
if ( isset( $palette[0] ) && is_array( $palette[0] ) ) {
|
|
foreach ( $palette[0] as $palette_color ) {
|
|
$colors[] = $palette_color['color'];
|
|
}
|
|
}
|
|
|
|
// Add the control. Overrides the default background-color control.
|
|
$wp_customize->add_control(
|
|
new Twenty_Twenty_One_Customize_Color_Control(
|
|
$wp_customize,
|
|
'background_color',
|
|
array(
|
|
'label' => esc_html__( 'Background Control', 'twentytwentyone' ),
|
|
'section' => 'colors',
|
|
'palette' => $colors,
|
|
)
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Sanitize boolean for checkbox.
|
|
*
|
|
* @access public
|
|
*
|
|
* @since 1.0.0
|
|
*
|
|
* @param bool $checked Whether or not a box is checked.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public static function sanitize_checkbox( $checked = null ) {
|
|
return (bool) isset( $checked ) && true === $checked;
|
|
}
|
|
|
|
/**
|
|
* Render the site title for the selective refresh partial.
|
|
*
|
|
* @access public
|
|
*
|
|
* @since 1.0.0
|
|
*
|
|
* @return void
|
|
*/
|
|
public function partial_blogname() {
|
|
bloginfo( 'name' );
|
|
}
|
|
|
|
/**
|
|
* Render the site tagline for the selective refresh partial.
|
|
*
|
|
* @access public
|
|
*
|
|
* @since 1.0.0
|
|
*
|
|
* @return void
|
|
*/
|
|
public function partial_blogdescription() {
|
|
bloginfo( 'description' );
|
|
}
|
|
}
|
|
}
|