tag in the document head, and expect WordPress to
* provide it for us.
*/
add_theme_support( 'title-tag' );
/*
* Enable support for Post Thumbnails on posts and pages.
*
* @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
*/
add_theme_support( 'post-thumbnails' );
/*
* Switch default core markup for search form, comment form, and comments
* to output valid HTML5.
*/
add_theme_support( 'html5', array(
'comment-form',
'comment-list',
'gallery',
'caption',
) );
// Add support for Block Styles.
add_theme_support( 'wp-block-styles' );
add_theme_support( 'editor-styles' );
/*
* This theme styles the visual editor to resemble the theme style,
* specifically font, colors, and column width.
*/
add_editor_style( array( 'css/editor-style.css',
get_template_directory_uri() . '/css/font-awesome.css',
fsport_fonts_url()
) );
/*
* Set Custom Background
*/
add_theme_support( 'custom-background', array ('default-color' => '#ffffff') );
// Set the default content width.
$GLOBALS['content_width'] = 900;
// This theme uses wp_nav_menu() in header menu
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'fsport' ),
'footer' => __( 'Footer Menu', 'fsport' ),
) );
$defaults = array(
'flex-height' => false,
'flex-width' => false,
'header-text' => array( 'site-title', 'site-description' ),
);
add_theme_support( 'custom-logo', $defaults );
// Define and register starter content to showcase the theme on new sites.
$starter_content = array(
'widgets' => array(
'sidebar-widget-area' => array(
'search',
'recent-posts',
'categories',
'archives',
),
'homepage-widget-area' => array(
'text_business_info'
),
'footer-column-1-widget-area' => array(
'recent-comments'
),
'footer-column-2-widget-area' => array(
'recent-posts'
),
'footer-column-3-widget-area' => array(
'calendar'
),
),
'posts' => array(
'home',
'blog',
'about',
'contact'
),
// Create the custom image attachments used as slides
'attachments' => array(
'image-slide-1' => array(
'post_title' => _x( 'Slider Image 1', 'Theme starter content', 'fsport' ),
'file' => 'images/slider/1.jpg', // URL relative to the template directory.
),
'image-slide-2' => array(
'post_title' => _x( 'Slider Image 2', 'Theme starter content', 'fsport' ),
'file' => 'images/slider/2.jpg', // URL relative to the template directory.
),
'image-slide-3' => array(
'post_title' => _x( 'Slider Image 3', 'Theme starter content', 'fsport' ),
'file' => 'images/slider/3.jpg', // URL relative to the template directory.
),
),
// Default to a static front page and assign the front and posts pages.
'options' => array(
'show_on_front' => 'page',
'page_on_front' => '{{home}}',
'page_for_posts' => '{{blog}}',
),
// Set the front page section theme mods to the IDs of the core-registered pages.
'theme_mods' => array(
'fsport_slider_display' => 1,
'fsport_slide1_image' => '{{image-slider-1}}',
'fsport_slide2_image' => '{{image-slider-2}}',
'fsport_slide3_image' => '{{image-slider-3}}',
),
'nav_menus' => array(
// Assign a menu to the "primary" location.
'primary' => array(
'name' => __( 'Primary Menu', 'fsport' ),
'items' => array(
'link_home',
'page_blog',
'page_contact',
'page_about',
),
),
// Assign a menu to the "footer" location.
'footer' => array(
'name' => __( 'Footer Menu', 'fsport' ),
'items' => array(
'link_home',
'page_about',
'page_blog',
'page_contact',
),
),
),
);
$starter_content = apply_filters( 'fsport_starter_content', $starter_content );
add_theme_support( 'starter-content', $starter_content );
}
endif; // fsport_setup
add_action( 'after_setup_theme', 'fsport_setup' );
if ( ! function_exists( 'fsport_fonts_url' ) ) :
/**
* Load google font url used in the fSport theme
*/
function fsport_fonts_url() {
$fonts_url = '';
/* Translators: If there are characters in your language that are not
* supported by PT Sans, translate this to 'off'. Do not translate
* into your own language.
*/
$questrial = _x( 'on', 'PT Sans font: on or off', 'fsport' );
if ( 'off' !== $questrial ) {
$font_families = array();
$font_families[] = 'PT Sans';
$query_args = array(
'family' => urlencode( implode( '|', $font_families ) ),
'subset' => urlencode( 'latin,latin-ext' ),
);
$fonts_url = add_query_arg( $query_args, '//fonts.googleapis.com/css' );
}
return $fonts_url;
}
endif; // fsport_fonts_url
if ( ! function_exists( 'fsport_load_scripts' ) ) :
/**
* the main function to load scripts in the fSport theme
* if you add a new load of script, style, etc. you can use that function
* instead of adding a new wp_enqueue_scripts action for it.
*/
function fsport_load_scripts() {
// load main stylesheet.
wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/css/font-awesome.css', array( ) );
wp_enqueue_style( 'fsport-style', get_stylesheet_uri(), array() );
wp_enqueue_style( 'fsport-fonts', fsport_fonts_url(), array(), null );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
// Load Utilities JS Script
wp_enqueue_script( 'fsport-utilities-js',
get_template_directory_uri() . '/js/utilities.js',
array( 'jquery', ) );
// Load Slider JS Scripts
wp_enqueue_script( 'jquery-easing-1-3',
get_template_directory_uri() . '/js/jquery.easing.1.3.js',
array( 'jquery' ) );
wp_enqueue_script( 'jquery-eislideshow',
get_template_directory_uri() . '/js/jquery.eislideshow.js',
array( 'jquery', 'jquery-easing-1-3' ) );
}
endif; // fsport_load_scripts
add_action( 'wp_enqueue_scripts', 'fsport_load_scripts' );
if ( ! function_exists( 'fsport_widgets_init' ) ) :
/**
* widgets-init action handler. Used to register widgets and register widget areas
*/
function fsport_widgets_init() {
// Register Sidebar Widget.
register_sidebar( array (
'name' => __( 'Sidebar Widget Area', 'fsport'),
'id' => 'sidebar-widget-area',
'description' => __( 'The sidebar widget area', 'fsport'),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
// Header Widget.
register_sidebar( array (
'name' => __( 'Header Widget Area', 'fsport' ),
'id' => 'header-widget-area',
'description' => __( 'The header widget area', 'fsport' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '
',
) );
// Register Homepage Widget
register_sidebar( array (
'name' => __( 'Homepage Widget Area', 'fsport' ),
'id' => 'homepage-widget-area',
'description' => __( 'The homepage widget area', 'fsport' ),
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
// Register Footer Column #1
register_sidebar( array (
'name' => __( 'Footer Column #1', 'fsport' ),
'id' => 'footer-column-1-widget-area',
'description' => __( 'The Footer Column #1 widget area', 'fsport' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
// Register Footer Column #2
register_sidebar( array (
'name' => __( 'Footer Column #2', 'fsport' ),
'id' => 'footer-column-2-widget-area',
'description' => __( 'The Footer Column #2 widget area', 'fsport' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
}
endif; // fsport_widgets_init
add_action( 'widgets_init', 'fsport_widgets_init' );
if ( ! function_exists( 'fsport_custom_header_setup' ) ) :
/**
* Set up the WordPress core custom header feature.
*
* @uses fsport_header_style()
*/
function fsport_custom_header_setup() {
add_theme_support( 'custom-header', array (
'default-image' => '',
'flex-height' => true,
'flex-width' => true,
'uploads' => true,
'width' => 900,
'height' => 100,
'default-text-color' => '#000000',
'wp-head-callback' => 'fsport_header_style',
) );
}
endif; // fsport_custom_header_setup
add_action( 'after_setup_theme', 'fsport_custom_header_setup' );
if ( ! function_exists( 'fsport_header_style' ) ) :
/**
* Styles the header image and text displayed on the blog.
*
* @see fsport_custom_header_setup().
*/
function fsport_header_style() {
$header_text_color = get_header_textcolor();
if ( ! has_header_image()
&& ( get_theme_support( 'custom-header', 'default-text-color' ) === $header_text_color
|| 'blank' === $header_text_color ) ) {
return;
}
$headerImage = get_header_image();
?>
pro_text;
$json['pro_url'] = esc_url( $this->pro_url );
return $json;
}
// Outputs the template
protected function render_template() { ?>
{{ data.title }}
<# if ( data.pro_text && data.pro_url ) { #>
{{ data.pro_text }}
<# } #>
setup_actions();
}
return $instance;
}
// Constructor method.
private function __construct() {}
// Sets up initial actions.
private function setup_actions() {
// Register panels, sections, settings, controls, and partials.
add_action( 'customize_register', array( $this, 'sections' ) );
// Register scripts and styles for the controls.
add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_control_scripts' ), 0 );
}
// Sets up the customizer sections.
public function sections( $manager ) {
// Load custom sections.
// Register custom section types.
$manager->register_section_type( 'fsport_Customize_Section_Pro' );
// Register sections.
$manager->add_section(
new fsport_Customize_Section_Pro(
$manager,
'fsport',
array(
'title' => esc_html__( 'tSport', 'fsport' ),
'pro_text' => esc_html__( 'Upgrade to Pro', 'fsport' ),
'pro_url' => esc_url( 'https://tishonator.com/product/tSport' )
)
)
);
}
// Loads theme customizer CSS.
public function enqueue_control_scripts() {
wp_enqueue_script( 'fsport-customize-controls', trailingslashit( get_template_directory_uri() ) . 'js/customize-controls.js', array( 'customize-controls' ) );
wp_enqueue_style( 'fsport-customize-controls', trailingslashit( get_template_directory_uri() ) . 'css/customize-controls.css' );
}
}
// Doing this customizer thang!
fsport_Customize::get_instance();
if ( ! function_exists( 'fsport_sanitize_checkbox' ) ) :
/**
* Checkbox sanitization callback example.
*
* Sanitization callback for 'checkbox' type controls. This callback sanitizes `$checked`
* as a boolean value, either TRUE or FALSE.
*
* @param bool $checked Whether the checkbox is checked.
* @return bool Whether the checkbox is checked.
*/
function fsport_sanitize_checkbox( $checked ) {
// Boolean check.
return ( ( isset( $checked ) && true == $checked ) ? true : false );
}
endif; // End of fsport_sanitize_checkbox
if ( ! function_exists( 'fsport_sanitize_url' ) ) :
function fsport_sanitize_url( $url ) {
return esc_url_raw( $url );
}
endif; // fsport_sanitize_url
if ( ! function_exists( 'fsport_show_copyright_text' ) ) :
/**
* Displays the copyright text.
*/
function fsport_show_copyright_text() {
$footerText = get_theme_mod('fsport_footer_copyright', null);
if ( !empty( $footerText ) ) {
echo esc_html( $footerText ) . ' | ';
}
}
endif; // End of fsport_show_copyright_text
if ( ! function_exists( 'fsport_customize_register' ) ) :
/**
* Register theme settings in the customizer
*/
function fsport_customize_register( $wp_customize ) {
/**
* Add Footer Section
*/
$wp_customize->add_section(
'fsport_footer_section',
array(
'title' => __( 'Footer', 'fsport' ),
'capability' => 'edit_theme_options',
)
);
// Add footer copyright text
$wp_customize->add_setting(
'fsport_footer_copyright',
array(
'default' => '',
'sanitize_callback' => 'sanitize_text_field',
)
);
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'fsport_footer_copyright',
array(
'label' => __( 'Copyright Text', 'fsport' ),
'section' => 'fsport_footer_section',
'settings' => 'fsport_footer_copyright',
'type' => 'text',
)
)
);
/**
* Add Slider Section
*/
$wp_customize->add_section(
'fsport_slider_section',
array(
'title' => __( 'Slider', 'fsport' ),
'capability' => 'edit_theme_options',
)
);
$wp_customize->add_setting(
'fsport_slider_display',
array(
'default' => 0,
'sanitize_callback' => 'fsport_sanitize_checkbox',
)
);
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'fsport_slider_display',
array(
'label' => __( 'Display Slider on a Static Front Page', 'fsport' ),
'section' => 'fsport_slider_section',
'settings' => 'fsport_slider_display',
'type' => 'checkbox',
)
)
);
for ($i = 1; $i <= 3; ++$i) {
$slideImageId = 'fsport_slide'.$i.'_image';
$defaultSliderImagePath = get_template_directory_uri().'/images/slider/'.$i.'.jpg';
// Add Slide Background Image
$wp_customize->add_setting( $slideImageId,
array(
'default' => $defaultSliderImagePath,
'sanitize_callback' => 'fsport_sanitize_url'
)
);
$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, $slideImageId,
array(
'label' => sprintf( esc_html__( 'Slide #%s Image', 'fsport' ), $i ),
'section' => 'fsport_slider_section',
'settings' => $slideImageId,
)
)
);
}
}
endif; // End of fsport_customize_register
add_action('customize_register', 'fsport_customize_register');
if ( ! function_exists( 'fsport_display_slider' ) ) :
/**
* Displays Slider
*/
function fsport_display_slider() {
?>