123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- <?php declare( strict_types = 1 ); ?>
- <?php
- /**
- * Seedlet Theme: Customizer
- *
- * @package Seedlet
- * @since 1.0.0
- */
- if ( ! class_exists( 'Seedlet_Customize' ) ) {
- /**
- * Customizer Settings.
- *
- * @since 1.0.0
- */
- class Seedlet_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 excerpt or full text selector to customizer
- */
- $wp_customize->add_section(
- 'excerpt_settings',
- array(
- 'title' => esc_html__( 'Excerpt Settings', 'seedlet' ),
- 'priority' => 120,
- )
- );
- $wp_customize->add_setting(
- 'index_display_excerpt_or_full_post',
- array(
- 'capability' => 'edit_theme_options',
- 'default' => 'full',
- 'sanitize_callback' => function( $value ) {
- return 'excerpt' === $value || 'full' === $value ? $value : 'excerpt';
- },
- )
- );
- $wp_customize->add_setting(
- 'archive_display_excerpt_or_full_post',
- array(
- 'capability' => 'edit_theme_options',
- 'default' => 'full',
- 'sanitize_callback' => function( $value ) {
- return 'excerpt' === $value || 'full' === $value ? $value : 'excerpt';
- },
- )
- );
- $wp_customize->add_control(
- 'index_display_excerpt_or_full_post',
- array(
- 'type' => 'radio',
- 'section' => 'excerpt_settings',
- 'label' => esc_html__( 'On the home page, posts show:', 'seedlet' ),
- 'choices' => array(
- 'excerpt' => esc_html__( 'Summary', 'seedlet' ),
- 'full' => esc_html__( 'Full text', 'seedlet' ),
- ),
- )
- );
- $wp_customize->add_control(
- 'archive_display_excerpt_or_full_post',
- array(
- 'type' => 'radio',
- 'section' => 'excerpt_settings',
- 'label' => esc_html__( 'On archive pages, posts show:', 'seedlet' ),
- 'choices' => array(
- 'excerpt' => esc_html__( 'Summary', 'seedlet' ),
- 'full' => esc_html__( 'Full text', 'seedlet' ),
- ),
- )
- );
- // 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', 'seedlet' ),
- )
- );
- // Add setting to hide the site header on the homepage.
- $wp_customize->add_setting( 'hide_site_header', array(
- 'default' => false,
- 'type' => 'theme_mod',
- 'transport' => 'refresh',
- 'sanitize_callback' => array( __CLASS__, 'sanitize_checkbox' ),
- ) );
- // Add control to hide the site header on the homepage.
- $wp_customize->add_control( 'hide_site_header', array(
- 'label' => esc_html__( 'Hide the Site Header', 'seedlet' ),
- 'description' => esc_html__( 'Check to hide the site header, if your homepage is set to display a static page.', 'seedlet' ),
- 'section' => 'static_front_page',
- 'priority' => 10,
- 'type' => 'checkbox',
- 'settings' => 'hide_site_header',
- ) );
- // Add setting to hide footer elements on the homepage.
- $wp_customize->add_setting( 'hide_site_footer', array(
- 'default' => false,
- 'type' => 'theme_mod',
- 'transport' => 'refresh',
- 'sanitize_callback' => array( __CLASS__, 'sanitize_checkbox' ),
- ) );
- // Add control to hide footer elements on the homepage.
- $wp_customize->add_control( 'hide_site_footer', array(
- 'label' => esc_html__( 'Hide the Site Footer Menu & Widgets', 'seedlet' ),
- 'description' => esc_html__( 'Check to hide the site menu & widgets in the footer, if your homepage is set to display a static page.', 'seedlet' ),
- 'section' => 'static_front_page',
- 'priority' => 10,
- 'type' => 'checkbox',
- 'settings' => 'hide_site_footer',
- ) );
- }
- /**
- * 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' );
- }
- /**
- * 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;
- }
- }
- new Seedlet_Customize();
- }
|