File: //home/slfopp7cb1df/public_html/shaneconrad.me/wp-content/themes/doctors-profile/inc/customizer.php
<?php
/**
* Doctors Profile Theme Customizer
*
* @package Doctors Profile
*/
/**
* Add postMessage support for site title and description for the Theme Customizer.
*
* @param WP_Customize_Manager $wp_customize Theme Customizer object.
*/
function doctors_profile_customize_register($wp_customize)
{
$wp_customize->get_setting('blogname')->transport = 'postMessage';
$wp_customize->get_setting('blogdescription')->transport = 'postMessage';
$wp_customize->get_setting('header_textcolor')->transport = 'postMessage';
//select sanitization function
function doctors_profile_sanitize_select($input, $setting)
{
$input = sanitize_key($input);
$choices = $setting->manager->get_control($setting->id)->choices;
return (array_key_exists($input, $choices) ? $input : $setting->default);
}
function doctors_profile_sanitize_image($file, $setting)
{
$mimes = array(
'jpg|jpeg|jpe' => 'image/jpeg',
'gif' => 'image/gif',
'png' => 'image/png',
'bmp' => 'image/bmp',
'tif|tiff' => 'image/tiff',
'ico' => 'image/x-icon'
);
//check file type from file name
$file_ext = wp_check_filetype($file, $mimes);
//if file has a valid mime type return it, otherwise return default
return ($file_ext['ext'] ? $file : $setting->default);
}
$wp_customize->add_setting('doctors_profile_site_tagline_show', array(
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'default' => '',
'sanitize_callback' => 'absint',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_site_tagline_show', array(
'label' => __('Hide Site Tagline Only? ', 'doctors-profile'),
'section' => 'title_tagline',
'settings' => 'doctors_profile_site_tagline_show',
'type' => 'checkbox',
));
$wp_customize->add_panel('doctors_profile_settings', array(
'priority' => 50,
'title' => __('Doctors Profile Theme settings', 'doctors-profile'),
'description' => __('All Doctors Profile theme settings', 'doctors-profile'),
));
$wp_customize->add_section('doctors_profile_header', array(
'title' => __('Doctors Profile Header Settings', 'doctors-profile'),
'capability' => 'edit_theme_options',
'description' => __('Doctors Profile theme header settings', 'doctors-profile'),
'panel' => 'doctors_profile_settings',
));
$wp_customize->add_setting('doctors_profile_main_menu_style', array(
'default' => 'style1',
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'doctors_profile_sanitize_select',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_main_menu_style', array(
'label' => __('Main Menu Style', 'doctors-profile'),
'description' => __('You can set the menu style one or two. ', 'doctors-profile'),
'section' => 'doctors_profile_header',
'settings' => 'doctors_profile_main_menu_style',
'type' => 'select',
'choices' => array(
'style1' => __('Style One', 'doctors-profile'),
'style2' => __('Style Two', 'doctors-profile'),
),
));
//doctors-profile Home intro
$wp_customize->add_section('doctors_profile_intro', array(
'title' => __('Portfolio Intro Settings', 'doctors-profile'),
'capability' => 'edit_theme_options',
'description' => __('Portfoli Intro Settings', 'doctors-profile'),
'panel' => 'doctors_profile_settings',
));
$wp_customize->add_setting('doctors_profile_intro_show', array(
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'default' => doctors_profile_new_user(),
'sanitize_callback' => 'absint',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_intro_show', array(
'label' => __('Show Portfolio Intro? ', 'doctors-profile'),
'section' => 'doctors_profile_intro',
'settings' => 'doctors_profile_intro_show',
'type' => 'checkbox',
));
$wp_customize->add_setting('doctors_profile_intro_img', array(
'capability' => 'edit_theme_options',
'default' => get_template_directory_uri() . '/assets/img/doctor.png',
'sanitize_callback' => 'doctors_profile_sanitize_image',
));
$wp_customize->add_control(new WP_Customize_Image_Control(
$wp_customize,
'doctors_profile_intro_img',
array(
'label' => __('Upload Profile Image', 'doctors-profile'),
'description' => __('Image size should be 450px width & 460px height for better view.', 'doctors-profile'),
'section' => 'doctors_profile_intro',
'settings' => 'doctors_profile_intro_img',
)
));
$wp_customize->add_setting('doctors_profile_intro_subtitle', array(
'default' => __('DR. Zelma Billington', 'doctors-profile'),
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'sanitize_text_field',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_intro_subtitle', array(
'label' => __('Intro Subtitle', 'doctors-profile'),
'section' => 'doctors_profile_intro',
'settings' => 'doctors_profile_intro_subtitle',
'type' => 'text',
));
$wp_customize->add_setting('doctors_profile_intro_title', array(
'default' => __('I\'m a Dental', 'doctors-profile'),
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'sanitize_text_field',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_intro_title', array(
'label' => __('Intro Title', 'doctors-profile'),
'section' => 'doctors_profile_intro',
'settings' => 'doctors_profile_intro_title',
'type' => 'text',
));
$wp_customize->add_setting('doctors_profile_intro_designation', array(
'default' => __('Doctor..', 'doctors-profile'),
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'sanitize_text_field',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_intro_designation', array(
'label' => __('Designation', 'doctors-profile'),
'section' => 'doctors_profile_intro',
'settings' => 'doctors_profile_intro_designation',
'type' => 'text',
));
$wp_customize->add_setting('doctors_profile_intro_desc', array(
'default' => __('Care you can believe in.', 'doctors-profile'),
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'wp_kses_post',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_intro_desc', array(
'label' => __('Intro Description', 'doctors-profile'),
'section' => 'doctors_profile_intro',
'settings' => 'doctors_profile_intro_desc',
'type' => 'textarea',
));
$wp_customize->add_setting('doctors_profile_btn_text_one', array(
'default' => __('About Me', 'doctors-profile'),
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'sanitize_text_field',
'transport' => 'postMessage',
));
$wp_customize->add_control('doctors_profile_btn_text_one', array(
'label' => __('Button one text', 'doctors-profile'),
'section' => 'doctors_profile_intro',
'settings' => 'doctors_profile_btn_text_one',
'type' => 'text',
));
$wp_customize->add_setting('doctors_profile_btn_url_one', array(
'default' => '#',
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'esc_url_raw',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_btn_url_one', array(
'label' => __('Button one url', 'doctors-profile'),
'description' => __('Keep url empty for hide this button', 'doctors-profile'),
'section' => 'doctors_profile_intro',
'settings' => 'doctors_profile_btn_url_one',
'type' => 'url',
));
$wp_customize->add_setting('doctors_profile_btn_text_two', array(
'default' => __('Download CV', 'doctors-profile'),
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'sanitize_text_field',
'transport' => 'postMessage',
));
$wp_customize->add_control('doctors_profile_btn_text_two', array(
'label' => __('Button two text', 'doctors-profile'),
'section' => 'doctors_profile_intro',
'settings' => 'doctors_profile_btn_text_two',
'type' => 'text',
));
$wp_customize->add_setting('doctors_profile_btn_url_two', array(
'default' => '',
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'esc_url_raw',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_btn_url_two', array(
'label' => __('Button two url', 'doctors-profile'),
'description' => __('Keep url empty for hide this button', 'doctors-profile'),
'section' => 'doctors_profile_intro',
'settings' => 'doctors_profile_btn_url_two',
'type' => 'text',
));
//doctors-profile blog settings
$wp_customize->add_section('doctors_profile_blog', array(
'title' => __('Doctors Profile Blog Settings', 'doctors-profile'),
'capability' => 'edit_theme_options',
'description' => __('Doctors Profile theme blog settings', 'doctors-profile'),
'panel' => 'doctors_profile_settings',
));
$wp_customize->add_setting('doctors_profile_blog_container', array(
'default' => 'container',
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'doctors_profile_sanitize_select',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_blog_container', array(
'label' => __('Container type', 'doctors-profile'),
'description' => __('You can set standard container or full width container. ', 'doctors-profile'),
'section' => 'doctors_profile_blog',
'settings' => 'doctors_profile_blog_container',
'type' => 'select',
'choices' => array(
'container' => __('Standard Container', 'doctors-profile'),
'container-fluid' => __('Full width Container', 'doctors-profile'),
),
));
$wp_customize->add_setting('doctors_profile_blog_layout', array(
'default' => 'fullwidth',
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'doctors_profile_sanitize_select',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_blog_layout', array(
'label' => __('Select Blog Layout', 'doctors-profile'),
'description' => __('Right and Left sidebar only show when sidebar widget is available. ', 'doctors-profile'),
'section' => 'doctors_profile_blog',
'settings' => 'doctors_profile_blog_layout',
'type' => 'select',
'choices' => array(
'rightside' => __('Right Sidebar', 'doctors-profile'),
'leftside' => __('Left Sidebar', 'doctors-profile'),
'fullwidth' => __('No Sidebar', 'doctors-profile'),
),
));
$wp_customize->add_setting('doctors_profile_blog_style', array(
'default' => 'grid',
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'doctors_profile_sanitize_select',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_blog_style', array(
'label' => __('Select Blog Style', 'doctors-profile'),
'section' => 'doctors_profile_blog',
'settings' => 'doctors_profile_blog_style',
'type' => 'select',
'choices' => array(
'grid' => __('Grid Style', 'doctors-profile'),
'classic' => __('Classic Style', 'doctors-profile'),
),
));
//doctors-profile page settings
$wp_customize->add_section('doctors_profile_page', array(
'title' => __('Doctors Profile Page Settings', 'doctors-profile'),
'capability' => 'edit_theme_options',
'description' => __('Doctors Profile theme blog settings', 'doctors-profile'),
'panel' => 'doctors_profile_settings',
));
$wp_customize->add_setting('doctors_profile_page_container', array(
'default' => 'container',
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'doctors_profile_sanitize_select',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_page_container', array(
'label' => __('Page Container type', 'doctors-profile'),
'description' => __('You can set standard container or full width container for page. ', 'doctors-profile'),
'section' => 'doctors_profile_page',
'settings' => 'doctors_profile_page_container',
'type' => 'select',
'choices' => array(
'container' => __('Standard Container', 'doctors-profile'),
'container-fluid' => __('Full width Container', 'doctors-profile'),
),
));
$wp_customize->add_setting('doctors_profile_page_header', array(
'default' => 'show',
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'doctors_profile_sanitize_select',
'transport' => 'refresh',
));
$wp_customize->add_control('doctors_profile_page_header', array(
'label' => __('Show Page header', 'doctors-profile'),
'section' => 'doctors_profile_page',
'settings' => 'doctors_profile_page_header',
'type' => 'select',
'choices' => array(
'show' => __('Show all pages', 'doctors-profile'),
'hide-home' => __('Hide Only Front Page', 'doctors-profile'),
'hide' => __('Hide All Pages', 'doctors-profile'),
),
));
if (isset($wp_customize->selective_refresh)) {
$wp_customize->selective_refresh->add_partial(
'blogname',
array(
'selector' => '.site-title a',
'render_callback' => 'doctors_profile_customize_partial_blogname',
)
);
$wp_customize->selective_refresh->add_partial(
'blogdescription',
array(
'selector' => '.site-description',
'render_callback' => 'doctors_profile_customize_partial_blogdescription',
)
);
}
}
add_action('customize_register', 'doctors_profile_customize_register');
/**
* Render the site title for the selective refresh partial.
*
* @return void
*/
function doctors_profile_customize_partial_blogname()
{
bloginfo('name');
}
/**
* Render the site tagline for the selective refresh partial.
*
* @return void
*/
function doctors_profile_customize_partial_blogdescription()
{
bloginfo('description');
}
/**
* Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
*/
function doctors_profile_customize_preview_js()
{
wp_enqueue_script('doctors-profile-customizer', get_template_directory_uri() . '/assets/js/customizer.js', array('customize-preview'), DOCTORS_PROFILE_VERSION, true);
}
add_action('customize_preview_init', 'doctors_profile_customize_preview_js');