1002 lines
31 KiB
PHP
Executable File
1002 lines
31 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Portage Theme Customizer
|
|
*
|
|
* @package Portage
|
|
*/
|
|
|
|
|
|
/**
|
|
* Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
|
|
*/
|
|
function portage_customize_preview_js() {
|
|
wp_enqueue_script( 'portage_customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ), '20130508', true );
|
|
}
|
|
add_action( 'customize_preview_init', 'portage_customize_preview_js' );
|
|
|
|
|
|
// Add some Customizer stuff
|
|
// developer.wordpress.org/themes/advanced-topics/customizer-api/
|
|
add_action( 'customize_register', 'portage_customize_register', 11 );
|
|
function portage_customize_register( $wp_customize ) {
|
|
|
|
// Add postMessage support for site title and description for the Theme Customizer
|
|
$wp_customize->get_setting( 'blogname' )->transport = 'postMessage';
|
|
$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
|
|
$wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage';
|
|
|
|
|
|
$wp_customize->add_panel( 'portage', array(
|
|
'title' => __( 'Portage Theme Options', 'portage' ),
|
|
'description' => __( 'The Portage theme has many options. Vist the theme\'s <a href="http://www.example.com/">home page</a> for complete instructions.', 'portage' ),
|
|
'priority' => 05,
|
|
) );
|
|
|
|
|
|
// Widget Areas
|
|
$wp_customize->add_section( 'portage_widget_areas', array(
|
|
'title' => __( 'Widget Areas', 'portage' ),
|
|
'capability' => 'edit_theme_options',
|
|
'priority' => 30,
|
|
'description' => __( 'Select which action hook widget areas you would like to activate.', 'portage' ),
|
|
'panel' => 'portage',
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_before_header', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_before_header', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Before Header', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_after_top_menu', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_after_top_menu', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'After Top Menu', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_before_social_media', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_before_social_media', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Before Social Media', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_before_primary_menu', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_before_primary_menu', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Before Primary Menu', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_after_header', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_after_header', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'After Header', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_container_top', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_container_top', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Top of Container', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_before_post_title', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_before_post_title', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Before Post Title', 'portage' ),
|
|
) );
|
|
|
|
/*
|
|
* We've removed this action hook, but let's leave this control in place
|
|
* in case we find a use for it later.
|
|
$wp_customize->add_setting( 'portage_before_post_content', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_before_post_content', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Before Post Content', 'portage' ),
|
|
) );
|
|
*/
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_post_top', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_post_top', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Top of Post', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_post_bottom', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_post_bottom', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Bottom of Post', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_after_post_content', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_after_post_content', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'After Post Content', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_before_post_meta', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_before_post_meta', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Before Post Meta', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_after_post_meta', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_after_post_meta', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'After Post Meta', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_before_comments', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_before_comments', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Before Comments', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_after_comments', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_after_comments', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'After Comments', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_before_comment_form', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_before_comment_form', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Before Comment Form', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_after_comment_form', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_after_comment_form', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'After Comment Form', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_container_bottom', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_container_bottom', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Bottom of Container', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_before_footer_menu', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_before_footer_menu', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Before Footer Menu', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_footer_top', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_footer_top', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Top of Footer', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_footer_bottom', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_footer_bottom', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Bottom of Footer', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_after_footer', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_after_footer', array(
|
|
'section' => 'portage_widget_areas',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'After Footer', 'portage' ),
|
|
) );
|
|
|
|
|
|
// Post Format Title Options
|
|
$wp_customize->add_section( 'portage_post_format_title_options', array(
|
|
'title' => __( 'Post Format Title Options', 'portage' ),
|
|
'capability' => 'edit_theme_options',
|
|
'priority' => 10,
|
|
'description' => __('Select whether titles should appear for various post formats.', 'portage'),
|
|
'panel' => 'portage',
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_aside_title', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_aside_title', array(
|
|
'section' => 'portage_post_format_title_options',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display title for asides', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_link_title', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_link_title', array(
|
|
'section' => 'portage_post_format_title_options',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display title for links', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_quote_title', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_quote_title', array(
|
|
'section' => 'portage_post_format_title_options',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display title for quotes', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_status_title', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_status_title', array(
|
|
'section' => 'portage_post_format_title_options',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display title for statuses', 'portage' ),
|
|
) );
|
|
|
|
|
|
// Post Format Excerpt Options
|
|
$wp_customize->add_section( 'portage_post_format_excerpt_options', array(
|
|
'title' => __( 'Post Format Excerpt Options', 'portage' ),
|
|
'capability' => 'edit_theme_options',
|
|
'priority' => 20,
|
|
'description' => __('By default, the aside, link, quote, and statu post format will display full content on the home page. You can choose to show excerpts instead.', 'portage'),
|
|
'panel' => 'portage',
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_aside_excerpt', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_aside_excerpt', array(
|
|
'section' => 'portage_post_format_excerpt_options',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display excerpt for asides', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_link_excerpt', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_link_excerpt', array(
|
|
'section' => 'portage_post_format_excerpt_options',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display excerpt for links', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_quote_excerpt', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_quote_excerpt', array(
|
|
'section' => 'portage_post_format_excerpt_options',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display excerpt for quotes', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_status_excerpt', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_status_excerpt', array(
|
|
'section' => 'portage_post_format_excerpt_options',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display excerpt for statuses', 'portage' ),
|
|
) );
|
|
|
|
|
|
$default_readmore = __( '…read more…', 'portage' );
|
|
$wp_customize->add_setting( 'portage_readmore', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'default' => $default_readmore,
|
|
'sanitize_callback' => 'portage_sanitize_text',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_readmore', array(
|
|
'section' => 'portage_post_format_excerpt_options',
|
|
'type' => 'text',
|
|
'label' => __( 'Text for ‘read more’ link (in all excerpts)', 'portage'),
|
|
) );
|
|
|
|
|
|
// Copyright Information
|
|
$wp_customize->add_section( 'portage_copyright', array(
|
|
'title' => __( 'Copyright Information', 'portage' ),
|
|
'capability' => 'edit_theme_options',
|
|
'priority' => 50,
|
|
'description' => __( 'Copyright information will appear in the footer, and at the bottom of printed pages. (Make sure you have not disabled this function under "Miscellaneous Options")', 'portage' ),
|
|
'panel' => 'portage',
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_copyright', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'default' => $default_copyright,
|
|
'sanitize_callback' => 'wp_kses_post',
|
|
) );
|
|
|
|
$default_copyright = '<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" id="cc-button" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.';
|
|
|
|
$wp_customize->add_control( 'portage_copyright', array(
|
|
'section' => 'portage_copyright',
|
|
'default' => $default_copyright,
|
|
'type' => 'textarea',
|
|
'label' => __( 'Enter your copyright information. (HTML is allowed.)', 'portage' ),
|
|
) );
|
|
|
|
|
|
// Print Options
|
|
$wp_customize->add_section( 'portage_print', array (
|
|
'title' => __( 'Print Options', 'portage' ),
|
|
'capability' => 'edit_theme_options',
|
|
'priority' => 40,
|
|
'panel' => 'portage',
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_print_url', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_print_url', array(
|
|
'section' => 'portage_print',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Print URL information at end of post', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_print_copyright', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_print_copyright', array(
|
|
'section' => 'portage_print',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Print copyright information at end of post', 'portage' ),
|
|
) );
|
|
|
|
|
|
// Social Media Options
|
|
$wp_customize->add_section( 'portage_social_media', array(
|
|
'title' => __( 'Social Media Options', 'portage' ),
|
|
'capability' => 'edit_theme_options',
|
|
'priority' => 90,
|
|
'panel' => 'portage',
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_rss', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_rss', array(
|
|
'section' => 'portage_social_media',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display link to RSS feed', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_twitter', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_url',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_twitter', array(
|
|
'section' => 'portage_social_media',
|
|
'type' => 'url',
|
|
'label' => __( 'Enter Twitter URL', 'portage'),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_twitter2', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_url',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_twitter2', array(
|
|
'section' => 'portage_social_media',
|
|
'type' => 'url',
|
|
'label' => __( 'Enter second Twitter URL', 'portage'),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_facebook', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_url',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_facebook', array(
|
|
'section' => 'portage_social_media',
|
|
'type' => 'url',
|
|
'label' => __( 'Enter Facebook URL', 'portage'),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_instagram', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_url',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_instagram', array(
|
|
'section' => 'portage_social_media',
|
|
'type' => 'text',
|
|
'label' => __( 'Enter Instagram URL', 'portage'),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_youtube', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_url',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_youtube', array(
|
|
'section' => 'portage_social_media',
|
|
'type' => 'url',
|
|
'label' => __( 'Enter YouTube URL', 'portage'),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_pinterest', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_url',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_pinterest', array(
|
|
'section' => 'portage_social_media',
|
|
'type' => 'url',
|
|
'label' => __( 'Enter Pinterest Profile URL', 'portage'),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_amazon', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_url',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_amazon', array(
|
|
'section' => 'portage_social_media',
|
|
'type' => 'url',
|
|
'label' => __( 'Enter Amazon Wish List URL', 'portage'),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_patreon', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_url',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_patreon', array(
|
|
'section' => 'portage_social_media',
|
|
'type' => 'url',
|
|
'label' => __( 'Enter Patreon URL', 'portage'),
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_paypal', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_url',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_paypal', array(
|
|
'section' => 'portage_social_media',
|
|
'type' => 'url',
|
|
'label' => __( 'Enter PayPal URL', 'portage'),
|
|
) );
|
|
|
|
|
|
|
|
|
|
// Mobile Menu Options
|
|
$wp_customize->add_section( 'portage_mobile_menu_options', array(
|
|
'title' => __( 'Mobile Menu Options', 'portage' ),
|
|
'capability' => 'edit_theme_options',
|
|
'priority' => 110,
|
|
'description' => __('Menu settings for mobile appearance. <b>Note:</b> The breakpoint settings will override the "mobile breakpoint" setting.', 'portage'),
|
|
'panel' => 'portage',
|
|
) );
|
|
|
|
// Top Menu Options
|
|
$wp_customize->add_setting( 'portage_top_menu_name', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_text',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_top_menu_name', array(
|
|
'section' => 'portage_mobile_menu_options',
|
|
'type' => 'text',
|
|
'label' => __( 'Mobile display name for top menu', 'portage' ),
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_top_menu_type', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_mobile_menu_type',
|
|
'default' => 'select',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_top_menu_type', array(
|
|
'section' => 'portage_mobile_menu_options',
|
|
'type' => 'select',
|
|
'choices' => array(
|
|
'select' => 'Select Menu',
|
|
'dropdown' => 'Flat Menu',
|
|
'multitoggle' => 'Dropdown Menu',
|
|
),
|
|
'label' => __( 'Display the top menu as', 'portage' ),
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_top_menu_breakpoint', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_int',
|
|
'default' => 640,
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_top_menu_breakpoint', array(
|
|
'section' => 'portage_mobile_menu_options',
|
|
'type' => 'integer',
|
|
'label' => __( 'Breakpoint to display top menu as mobile', 'portage' ),
|
|
) );
|
|
|
|
// Main Menu Options
|
|
$wp_customize->add_setting( 'portage_main_menu_name', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_text',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_main_menu_name', array(
|
|
'section' => 'portage_mobile_menu_options',
|
|
'type' => 'text',
|
|
'label' => __( 'Mobile display name for main menu', 'portage' ),
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_main_menu_type', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_mobile_menu_type',
|
|
'default' => 'select',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_main_menu_type', array(
|
|
'section' => 'portage_mobile_menu_options',
|
|
'type' => 'select',
|
|
'choices' => array(
|
|
'select' => 'Select Menu',
|
|
'dropdown' => 'Flat Menu',
|
|
'multitoggle' => 'Dropdown Menu',
|
|
),
|
|
'label' => __( 'Display the menu menu as', 'portage' ),
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_main_menu_breakpoint', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_int',
|
|
'default' => 640,
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_main_menu_breakpoint', array(
|
|
'section' => 'portage_mobile_menu_options',
|
|
'type' => 'integer',
|
|
'label' => __( 'Breakpoint to display main menu as mobile', 'portage' ),
|
|
) );
|
|
|
|
// Footer Menu Options
|
|
$wp_customize->add_setting( 'portage_footer_menu_name', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_text',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_footer_menu_name', array(
|
|
'section' => 'portage_mobile_menu_options',
|
|
'type' => 'text',
|
|
'label' => __( 'Mobile display name for footer menu', 'portage' ),
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_footer_menu_type', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_mobile_menu_type',
|
|
'default' => 'select',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_footer_menu_type', array(
|
|
'section' => 'portage_mobile_menu_options',
|
|
'type' => 'select',
|
|
'choices' => array(
|
|
'select' => 'Select Menu',
|
|
'dropdown' => 'Flat Menu',
|
|
'multitoggle' => 'Dropdown Menu',
|
|
),
|
|
'label' => __( 'Display the footer menu as', 'portage' ),
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_footer_menu_breakpoint', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'sanitize_callback' => 'portage_sanitize_int',
|
|
'default' => 640,
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_footer_menu_breakpoint', array(
|
|
'section' => 'portage_mobile_menu_options',
|
|
'type' => 'integer',
|
|
'label' => __( 'Breakpoint to display footer menu as mobile', 'portage' ),
|
|
) );
|
|
|
|
|
|
// Mobile Options Options
|
|
$wp_customize->add_section( 'portage_mobile', array(
|
|
'title' => __( 'Mobile Options', 'portage' ),
|
|
'capability' => 'edit_theme_options',
|
|
'priority' => 100,
|
|
'panel' => 'portage',
|
|
'description' => 'Fine-tune your mobile appearance',
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_mobile_breakpoint', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'default' => '640',
|
|
'sanitize_callback' => 'portage_sanitize_int',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_mobile_breakpoint', array(
|
|
'section' => 'portage_mobile',
|
|
'type' => 'text',
|
|
'label' => __( 'Breakpoint to display mobile version of theme', 'portage' ),
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_post_top_link', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'default' => '0',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_post_top_link', array(
|
|
'section' => 'portage_mobile',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display \'Return to Top\' link after post content', 'portage' ),
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_footer_top_link', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'default' => '0',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_footer_top_link', array(
|
|
'section' => 'portage_mobile',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display \'Return to Top\' link before footer content', 'portage' ),
|
|
) );
|
|
|
|
|
|
// Miscellaneous Options
|
|
$wp_customize->add_section( 'portage_misc', array(
|
|
'title' => __( 'Miscellaneous Options', 'portage' ),
|
|
'capability' => 'edit_theme_options',
|
|
'priority' => 200,
|
|
'panel' => 'portage',
|
|
) );
|
|
|
|
$wp_customize->add_setting( 'portage_display_copyright', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'default' => '1',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_display_copyright', array(
|
|
'section' => 'portage_misc',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display copyright information in footer', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_display_credits', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'default' => '1',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_display_credits', array(
|
|
'section' => 'portage_misc',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display developer credits in footer', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_edit_post_link', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'default' => '1',
|
|
'sanitize_callback' => 'portage_sanitize_checkbox',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_edit_post_link', array(
|
|
'section' => 'portage_misc',
|
|
'type' => 'checkbox',
|
|
'label' => __( 'Display "Edit this post" link if user is logged in', 'portage' ),
|
|
) );
|
|
|
|
|
|
$wp_customize->add_setting( 'portage_excerpt_length', array(
|
|
'type' => 'theme_mod',
|
|
'transport' => 'postMessage',
|
|
'default' => '20',
|
|
'sanitize_callback' => 'portage_sanitize_excerpt',
|
|
) );
|
|
|
|
$wp_customize->add_control( 'portage_excerpt_length', array(
|
|
'section' => 'portage_misc',
|
|
'type' => 'text',
|
|
'label' => __( 'Excerpt length in number of words (maximum = 100)', 'portage' ),
|
|
) );
|
|
|
|
// Preview some of our options
|
|
/*
|
|
if ( $wp_customize->is_preview() && ! is_admin() )
|
|
add_action( 'wp_footer', 'portage_customize_preview', 21);
|
|
|
|
function themename_customize_preview() {
|
|
?>
|
|
<script type="text/javascript">
|
|
( function( $ ){
|
|
wp.customize('setting_name',function( value ) {
|
|
value.bind(function(to) {
|
|
$('.posttitle').css('color', to ? to : '' );
|
|
});
|
|
});
|
|
} )( jQuery )
|
|
</script>
|
|
<?php
|
|
}
|
|
*/
|
|
|
|
} // End register function
|
|
|
|
|
|
// Sanitizer Functions
|
|
|
|
function portage_sanitize_checkbox( $input ) {
|
|
if ( $input == 1 ) {
|
|
return 1;
|
|
} else {
|
|
return '';
|
|
}
|
|
}
|
|
|
|
function portage_sanitize_text( $input ) {
|
|
return wp_kses_post( force_balance_tags( $input ) );
|
|
}
|
|
|
|
function portage_sanitize_excerpt( $input ) {
|
|
$input = absint( $input );
|
|
if ( $input > 100 ) { $input = 100; }
|
|
return $input;
|
|
}
|
|
|
|
function portage_sanitize_html( $input ) {
|
|
wp_kses($input,
|
|
array(),
|
|
array(
|
|
'http' => array(),
|
|
'https' => array(),
|
|
)
|
|
);
|
|
}
|
|
|
|
function portage_sanitize_url( $url ) {
|
|
return esc_url_raw( $url );
|
|
}
|
|
|
|
function portage_sanitize_mobile_menu_type( $input ){
|
|
$valid = array(
|
|
'select' => 'Select Menu',
|
|
'dropdown' => 'Flat Menu',
|
|
'multitoggle' => 'Dropdown Menu',
|
|
);
|
|
if ( array_key_exists( $input, $valid ) ) {
|
|
return $input;
|
|
} else {
|
|
return '';
|
|
}
|
|
}
|
|
|
|
function portage_sanitize_int( $input ){
|
|
if( is_numeric( $input) ) {
|
|
return intval( $input );
|
|
}
|
|
}
|
|
|