<?php
add_action( 'after_setup_theme', 'pages_setup' );
function pages_setup() {
load_theme_textdomain( 'pages', get_template_directory() . '/languages' );
add_theme_support( 'title-tag' );
add_theme_support( 'custom-logo' );
add_theme_support( 'custom-header' );
add_theme_support( 'custom-background' );
add_theme_support( 'post-thumbnails' );
add_theme_support( 'responsive-embeds' );
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'html5', array( 'search-form', 'navigation-widgets' ) );
add_theme_support( 'woocommerce' );
global $content_width;
if ( !isset( $content_width ) ) { $content_width = 1920; }
register_nav_menus( array( 'main-menu' => esc_html__( 'Main Menu', 'pages' ), 'footer-menu' => esc_html__( 'Footer Menu', 'pages' ), 'social-menu' => esc_html__( 'Social Menu', 'pages' ) ) );
}
add_action( 'wp_enqueue_scripts', 'pages_enqueue' );
function pages_enqueue() {
wp_enqueue_style( 'pages-style', get_stylesheet_uri() );
wp_enqueue_script( 'jquery' );
wp_register_script( 'pages-videos', get_template_directory_uri() . '/js/videos.js' );
wp_enqueue_script( 'pages-videos' );
wp_add_inline_script( 'pages-videos', 'jQuery(document).ready(function($){$("#wrapper").vids();});' );
}
add_action( 'wp_footer', 'pages_footer' );
function pages_footer() {
?>
<script>
jQuery(document).ready(function($) {
var deviceAgent = navigator.userAgent.toLowerCase();
if (deviceAgent.match(/(iphone|ipod|ipad)/)) {
$("html").addClass("ios");
}
if (navigator.userAgent.search("MSIE") >= 0) {
$("html").addClass("ie");
}
else if (navigator.userAgent.search("Chrome") >= 0) {
$("html").addClass("chrome");
}
else if (navigator.userAgent.search("Firefox") >= 0) {
$("html").addClass("firefox");
}
else if (navigator.userAgent.search("Safari") >= 0 && navigator.userAgent.search("Chrome") < 0) {
$("html").addClass("safari");
}
else if (navigator.userAgent.search("Opera") >= 0) {
$("html").addClass("opera");
}
$(".before").on("focus", function() {
$(".last").focus();
});
$(".after").on("focus", function() {
$(".first").focus();
});
$(".menu-toggle").on("keypress click", function(e) {
if (e.which == 13 || e.type === "click") {
e.preventDefault();
$("#menu").toggleClass("toggled");
$(".looper").toggle();
}
});
$(document).keyup(function(e) {
if (e.keyCode == 27) {
if ($("#menu").hasClass("toggled")) {
$("#menu").toggleClass("toggled");
}
}
});
$("img.no-logo").each(function() {
var alt = $(this).attr("alt");
$(this).replaceWith(alt);
});
$("img.svg").each(function() {
var $img = $(this);
var imgURL = $img.attr("src");
var attributes = $img.prop("attributes");
$.get(imgURL, function(data) {
var $svg = $(data).find("svg");
$svg = $svg.removeAttr("xmlns:a");
$.each(attributes, function() {
$svg.attr(this.name, this.value);
});
$img.replaceWith($svg);
}, "xml");
});
});
</script>
<?php
}
add_filter( 'document_title_separator', 'pages_document_title_separator' );
function pages_document_title_separator( $sep ) {
$sep = '|';
return $sep;
}
add_filter( 'the_title', 'pages_title' );
function pages_title( $title ) {
if ( $title == '' ) {
return '...';
} else {
return $title;
}
}
add_filter( 'nav_menu_link_attributes', 'pages_schema_url', 10 );
function pages_schema_url( $atts ) {
$atts['itemprop'] = 'url';
return $atts;
}
if ( !function_exists( 'pages_wp_body_open' ) ) {
function pages_wp_body_open() {
do_action( 'wp_body_open' );
}
}
add_action( 'wp_body_open', 'pages_skip_link', 5 );
function pages_skip_link() {
echo '<a href="#content" class="skip-link screen-reader-text">' . esc_html__( 'Skip to the content', 'pages' ) . '</a>';
}
add_filter( 'the_content_more_link', 'pages_read_more_link' );
function pages_read_more_link() {
if ( !is_admin() ) {
return ' <a href="' . esc_url( get_permalink() ) . '" class="more-link">' . sprintf( __( '...%s', 'pages' ), '<span class="screen-reader-text">  ' . esc_html( get_the_title() ) . '</span>' ) . '</a>';
}
}
add_filter( 'excerpt_more', 'pages_excerpt_read_more_link' );
function pages_excerpt_read_more_link( $more ) {
if ( !is_admin() ) {
global $post;
return ' <a href="' . esc_url( get_permalink( $post->ID ) ) . '" class="more-link">' . sprintf( __( '...%s', 'pages' ), '<span class="screen-reader-text">  ' . esc_html( get_the_title() ) . '</span>' ) . '</a>';
}
}
add_filter( 'big_image_size_threshold', '__return_false' );
add_filter( 'intermediate_image_sizes_advanced', 'pages_image_insert_override' );
function pages_image_insert_override( $sizes ) {
unset( $sizes['medium_large'] );
unset( $sizes['1536x1536'] );
unset( $sizes['2048x2048'] );
return $sizes;
}
add_action( 'widgets_init', 'pages_widgets_init' );
function pages_widgets_init() {
register_sidebar( array(
'name' => esc_html__( 'Header Widget Area', 'pages' ),
'id' => 'header-widget-area',
'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
'after_widget' => '</li>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
register_sidebar( array(
'name' => esc_html__( 'Sidebar Widget Area', 'pages' ),
'id' => 'sidebar-widget-area',
'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
'after_widget' => '</li>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
register_sidebar( array(
'name' => esc_html__( 'Footer Widget Area', 'pages' ),
'id' => 'footer-widget-area',
'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
'after_widget' => '</li>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
}
add_action( 'wp_head', 'pages_pingback_header' );
function pages_pingback_header() {
if ( is_singular() && pings_open() ) {
printf( '<link rel="pingback" href="%s" />' . "\n", esc_url( get_bloginfo( 'pingback_url' ) ) );
}
}
add_action( 'comment_form_before', 'pages_enqueue_comment_reply_script' );
function pages_enqueue_comment_reply_script() {
if ( get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
function pages_custom_pings( $comment ) {
?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>"><?php echo esc_url( comment_author_link() ); ?></li>
<?php
}
add_filter( 'get_comments_number', 'pages_comment_count', 0 );
function pages_comment_count( $count ) {
if ( !is_admin() ) {
global $id;
$get_comments = get_comments( 'status=approve&post_id=' . $id );
$comments_by_type = separate_comments( $get_comments );
return count( $comments_by_type['comment'] );
} else {
return $count;
}
}
add_action( 'customize_register', 'pages_customizer', 20 );
function pages_customizer( $wp_customize ) {
$wp_customize->remove_control( 'blogdescription' );
$wp_customize->remove_control( 'header_textcolor' );
$wp_customize->remove_control( 'display_header_text' );
$wp_customize->add_setting(
'pages_accent_color',
array(
'default' => '#007acc',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'accent_color',
array(
'label' => esc_html__( 'Accent Color', 'pages' ),
'section' => 'colors',
'settings' => 'pages_accent_color'
)
)
);
$wp_customize->add_setting(
'pages_social_color',
array(
'default' => '#007acc',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'social_color',
array(
'label' => esc_html__( 'Social Icons Color', 'pages' ),
'section' => 'colors',
'settings' => 'pages_social_color'
)
)
);
$wp_customize->add_setting(
'pages_link_color',
array(
'default' => '#007acc',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'link_color',
array(
'label' => esc_html__( 'Link Color', 'pages' ),
'section' => 'colors',
'settings' => 'pages_link_color'
)
)
);
$wp_customize->add_setting(
'pages_header_color',
array(
'default' => '#007acc',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage'
)
);
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'header_color',
array(
'label' => esc_html__( 'Headers Color', 'pages' ),
'section' => 'colors',
'settings' => 'pages_header_color'
)
)
);
$wp_customize->add_section(
'pages_options',
array(
'title' => __( 'Display Options', 'pages' ),
'priority' => 0
)
);
$wp_customize->add_setting(
'pages_hide_header',
array(
'default' => '',
'sanitize_callback' => 'pages_sanitize_checkbox'
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'hide_header',
array(
'label' => esc_html__( 'Hide Header', 'pages' ),
'section' => 'pages_options',
'settings' => 'pages_hide_header',
'type' => 'checkbox',
)
)
);
$wp_customize->add_setting(
'pages_hide_branding',
array(
'default' => '',
'sanitize_callback' => 'pages_sanitize_checkbox'
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'hide_branding',
array(
'label' => esc_html__( 'Hide Logo/Site Title', 'pages' ),
'section' => 'pages_options',
'settings' => 'pages_hide_branding',
'type' => 'checkbox',
)
)
);
$wp_customize->add_setting(
'pages_hide_menu',
array(
'default' => '',
'sanitize_callback' => 'pages_sanitize_checkbox'
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'hide_menu',
array(
'label' => esc_html__( 'Hide Menu', 'pages' ),
'section' => 'pages_options',
'settings' => 'pages_hide_menu',
'type' => 'checkbox',
)
)
);
$wp_customize->add_setting(
'pages_hide_search',
array(
'default' => '',
'sanitize_callback' => 'pages_sanitize_checkbox'
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'hide_search',
array(
'label' => esc_html__( 'Hide Search Form', 'pages' ),
'section' => 'pages_options',
'settings' => 'pages_hide_search',
'type' => 'checkbox',
)
)
);
$wp_customize->add_setting(
'pages_hide_footer',
array(
'default' => '',
'sanitize_callback' => 'pages_sanitize_checkbox'
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'hide_footer',
array(
'label' => esc_html__( 'Hide Footer', 'pages' ),
'section' => 'pages_options',
'settings' => 'pages_hide_footer',
'type' => 'checkbox',
)
)
);
$wp_customize->add_section(
'pages_fonts',
array(
'title' => esc_html__( 'Fonts', 'pages' ),
'priority' => 25
)
);
$wp_customize->add_setting(
'pages_header_font',
array(
'default' => '',
'sanitize_callback' => 'sanitize_text_field',
'transport' => 'refresh'
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'header_font',
array(
'label' => esc_html__( 'Headers Font', 'pages' ),
'description' => '<a href="https://fonts.google.com/" target="_blank">Google fonts</a> allowed here too.',
'section' => 'pages_fonts',
'settings' => 'pages_header_font'
)
)
);
$wp_customize->add_section(
'pages_footer',
array(
'title' => esc_html__( 'Footer', 'pages' ),
'priority' => 120
)
);
$wp_customize->add_setting(
'pages_copyright',
array(
'default' => '',
'sanitize_callback' => 'sanitize_text_field',
'transport' => 'refresh'
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'copyright',
array(
'label' => esc_html__( '© Copyright', 'pages' ),
'section' => 'pages_footer',
'settings' => 'pages_copyright'
)
)
);
$wp_customize->add_section(
'pages_code',
array(
'title' => esc_html__( 'Additional Code', 'pages' ),
'description' => esc_html__( 'Add additional HTML and JS as needed.', 'pages' ),
'priority' => 200
)
);
$wp_customize->add_setting(
'pages_custom_header_code',
array(
'default' => '',
'sanitize_callback' => 'wp_kses_post',
'transport' => 'refresh'
)
);
$wp_customize->add_control(
new WP_Customize_Code_Editor_Control(
$wp_customize,
'custom_header_code',
array(
'description' => esc_html__( 'Add code to &lt;head&gt;', 'pages' ),
'code_type' => 'html',
'settings' => 'pages_custom_header_code',
'section' => 'pages_code',
)
)
);
$wp_customize->add_setting(
'pages_custom_body_code',
array(
'default' => '',
'sanitize_callback' => 'wp_kses_post',
'transport' => 'refresh'
)
);
$wp_customize->add_control(
new WP_Customize_Code_Editor_Control(
$wp_customize,
'custom_body_code',
array(
'description' => esc_html__( 'Add code just after &lt;body&gt;', 'pages' ),
'code_type' => 'html',
'settings' => 'pages_custom_body_code',
'section' => 'pages_code',
)
)
);
$wp_customize->add_setting(
'pages_custom_footer_code',
array(
'default' => '',
'sanitize_callback' => 'wp_kses_post',
'transport' => 'refresh'
)
);
$wp_customize->add_control(
new WP_Customize_Code_Editor_Control(
$wp_customize,
'custom_footer_code',
array(
'description' => esc_html__( 'Add code just before &lt;/body&gt;', 'pages' ),
'code_type' => 'html',
'settings' => 'pages_custom_footer_code',
'section' => 'pages_code',
)
)
);
}
add_action( 'wp_head', 'pages_header_code' );
function pages_header_code() {
$headercode = get_theme_mod( 'pages_custom_header_code', '' );
if ( '' === $headercode ) {
return;
}
echo $headercode . "\n";
}
add_action( 'wp_body_open', 'pages_body_code' );
function pages_body_code() {
$bodycode = get_theme_mod( 'pages_custom_body_code', '' );
if ( '' === $bodycode ) {
return;
}
echo $bodycode . "\n";
}
add_action( 'wp_footer', 'pages_footer_code' );
function pages_footer_code() {
$footercode = get_theme_mod( 'pages_custom_footer_code', '' );
if ( '' === $footercode ) {
return;
}
echo $footercode . "\n";
}
function pages_sanitize_checkbox( $input ) {
if ( $input === true || $input === '1' ) {
return '1';
}
return '';
}
add_action( 'wp_head', 'pages_customizer_css' );
function pages_customizer_css() {
?>
<style>
#container a, #container h1, h2, h3, h4, h5, h6, #container h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, pre, code, #social-menu a{color:<?php echo esc_html( get_theme_mod( 'pages_accent_color' ) ); ?>}
hr, .button, button, input[type="submit"], .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce #respond input#submit.alt:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover{background-color:<?php echo esc_html( get_theme_mod( 'pages_accent_color' ) ); ?>}
blockquote, #content .gallery img, .box, .box-2, .box-3, .box-4, .box-5, .box-6, .box-1-3, .box-2-3{border-color:<?php echo esc_html( get_theme_mod( 'pages_accent_color' ) ); ?>}
@media(min-width:769px){#menu .current-menu-item a, #menu .current_page_parent a{border-color:<?php echo esc_html( get_theme_mod( 'pages_accent_color' ) ); ?>}}
#social-menu a{color:<?php echo esc_html( get_theme_mod( 'pages_social_color' ) ); ?>}
#container a{color:<?php echo esc_html( get_theme_mod( 'pages_link_color' ) ); ?>}
#container h1, h2, h3, h4, h5, h6, #container h1 a, h2 a, h3 a, h4 a, h5 a, h6 a{font-family:<?php echo esc_html( ucwords( str_replace( '+', ' ', get_theme_mod( 'pages_header_font' ) ) ) ); ?>;color:<?php echo esc_html( get_theme_mod( 'pages_header_color' ) ); ?>}
<?php if ( esc_html( get_theme_mod( 'pages_hide_header' ) ) ) { echo '#header{display:none}'; } ?>
<?php if ( esc_html( get_theme_mod( 'pages_hide_branding' ) ) ) { echo '#branding{display:none}'; } ?>
<?php if ( esc_html( get_theme_mod( 'pages_hide_menu' ) ) ) { echo '#menu{display:none}'; } ?>
<?php if ( esc_html( get_theme_mod( 'pages_hide_search' ) ) ) { echo '#search{display:none}'; } ?>
<?php if ( esc_html( get_theme_mod( 'pages_hide_footer' ) ) ) { echo '#footer{display:none}'; } ?>
</style>
<?php
}
add_action( 'customize_preview_init', 'pages_customizer_preview' );
function pages_customizer_preview() {
wp_enqueue_script(
'pages-theme-customizer',
get_template_directory_uri() . '/js/customizer.js',
array( 'jquery', 'customize-preview' ),
'0.3.0',
true
);
}
add_action( 'customize_preview_init', 'pages_customizer_fonts_preview' );
add_action( 'wp_enqueue_scripts', 'pages_customizer_fonts_preview' );
function pages_customizer_fonts_preview() {
if ( !empty( get_theme_mod( 'pages_header_font' ) ) ) {
wp_enqueue_style( 'pages-google-fonts', 'https://fonts.googleapis.com/css?family=' . esc_html( ucwords( str_replace( ' ', '+', get_theme_mod( 'pages_header_font' ) ) ) ) . '' );
}
}