__( 'Widget Area for header', 'birdfield' ),
'id' => 'widget-area-header',
'description' => __( 'One text widget for header', 'birdfield' ),
'before_widget' => '
',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
register_sidebar( array (
'name' => __( 'Widget Area for footer', 'birdfield' ),
'id' => 'widget-area-footer',
'description' => __( 'Widget Area for footer', 'birdfield' ),
'before_widget' => '',
'after_widget' => '
',
'before_title' => '',
'after_title' => '
',
) );
}
add_action( 'widgets_init', 'birdfield_widgets_init' );
//////////////////////////////////////////////////////
// Header markup
function birdfield_wrapper_class() {
$birdfield_class = 'wrapper fixed-header';
if ( 'blank' == get_header_textcolor()) {
$birdfield_class .= ' no-title';
}
if ( !has_nav_menu( 'primary' )) {
$birdfield_class .= ' no-nav-menu';
}
echo 'class="' .$birdfield_class .'"';
}
//////////////////////////////////////////////////////
// Copyright Year
function birdfield_get_copyright_year() {
$birdfield_copyright_year = date("Y");
$birdfield_first_year = $birdfield_copyright_year;
$args = array(
'numberposts' => 1,
'orderby' => 'post_date',
'order' => 'ASC',
);
$posts = get_posts( $args );
foreach ( $posts as $post ) {
$birdfield_first_year = mysql2date( 'Y', $post->post_date, true );
}
if( $birdfield_copyright_year <> $birdfield_first_year ){
$birdfield_copyright_year = $birdfield_first_year .' - ' .$birdfield_copyright_year;
}
return $birdfield_copyright_year;
}
//////////////////////////////////////////////////////
// Setup Theme
if ( ! function_exists( 'birdfield_setup' ) ) :
function birdfield_setup() {
// Set languages
load_theme_textdomain( 'birdfield', get_template_directory() . '/languages' );
// Add support for Block Styles.
add_theme_support( 'wp-block-styles' );
// This theme styles the visual editor with editor-style.css to match the theme style.
add_theme_support( 'editor-styles' );
add_editor_style( 'editor-style.css' );
// Set feed
add_theme_support( 'automatic-feed-links' );
// This theme uses 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(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
) );
/*
* This theme supports all available post formats by default.
* See http://codex.wordpress.org/Post_Formats
*/
add_theme_support( 'post-formats', array(
'aside', 'audio', 'chat', 'gallery', 'image', 'link', 'quote', 'status', 'video'
) );
/*
* This theme supports custom background color and image, and here
* we also set up the default background color.
*/
add_theme_support( 'custom-background', array(
'default-image' => '',
'default-color' => 'FFF',
'wp-head-callback' => 'birdfield_custom_background_cb',
) );
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
'primary' => __( 'Navigation Menu', 'birdfield' ),
) );
// Add support for title tag.
add_theme_support( 'title-tag' );
// Add support for custom headers.
$custom_header_support = array(
'default-image' => '%s/images/header.jpg',
'height' => 900,
'width' => 1280,
'max-width' => 900,
'random-default' => true,
);
// Add support for custom headers.
add_theme_support( 'custom-header', $custom_header_support );
register_default_headers( array(
'birdfield' => array(
'url' => '%s/images/header.jpg',
'thumbnail_url' => '%s/images/header-thumbnail.jpg',
'description' => 'birdfield'
)
) );
// Add support for news content.
add_theme_support( 'news-content', array(
'news_content_filter' => 'birdfield_get_news_posts',
'max_posts' => 5,
) );
}
endif; // birdfield_setup
add_action( 'after_setup_theme', 'birdfield_setup' );
//////////////////////////////////////////////////////
// Filter the news posts to return
function birdfield_get_news_posts(){
$array = get_posts(array(
'tag_slug__in' => 'news',
'numberposts' => 5
));
return $array;
}
add_filter( 'birdfield_get_news_posts', 'birdfield_get_news_posts', 100 );
//////////////////////////////////////////////////////
// Filter home and the news posts that returns a boolean value.
function birdfield_has_news_posts() {
return ! is_paged() && ( bool ) birdfield_get_news_posts();
}
//////////////////////////////////////////////////////
// Filter main query at home
function birdfield_home_query( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$birdfield_news = get_term_by( 'name', 'news', 'post_tag' );
if( $birdfield_news ){
$query->set( 'tag__not_in', $birdfield_news->term_id );
}
}
}
add_action( 'pre_get_posts', 'birdfield_home_query' );
//////////////////////////////////////////////////////
// Enqueue Scripts
function birdfield_scripts() {
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
wp_enqueue_script( 'jquery-masonry' );
wp_enqueue_script( 'jquerytile', get_template_directory_uri() .'/js/jquery.tile.js', 'jquery', '1.1.2' );
wp_enqueue_script( 'birdfield', get_template_directory_uri() .'/js/birdfield.js', array( 'jquery' , 'jquery-masonry', 'jquerytile' ), '1.12' );
wp_enqueue_style( 'birdfield-google-font', '//fonts.googleapis.com/css?family=Raleway', false, null, 'all' );
wp_enqueue_style( 'birdfield', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'birdfield_scripts' );
//////////////////////////////////////////////////////
// Enqueue Scripts for Dashboard
function birdfield_admin_enqueue_scripts() {
wp_enqueue_style( 'birdfield-google-font', '//fonts.googleapis.com/css?family=Raleway', false, null, 'all' );
}
add_action( 'admin_enqueue_scripts', 'birdfield_admin_enqueue_scripts' );
//////////////////////////////////////////////////////
// Theme Customizer
function birdfield_customize( $wp_customize ) {
// defaut colors
$birdfield_default_colors = birdfield_get_default_colors();
// Text Color
$wp_customize->add_setting( 'birdfield_text_color',
array(
'default' => '#222327',
'sanitize_callback' => 'maybe_hash_hex_color',
));
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'birdfield_text_color',
array(
'label' => __( 'Text Color', 'birdfield' ),
'section' => 'colors',
'settings' => 'birdfield_text_color',
)));
// Link Color
$wp_customize->add_setting( 'birdfield_link_color',
array(
'default' => '#1c4bbe',
'sanitize_callback' => 'maybe_hash_hex_color',
));
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'birdfield_link_color',
array(
'label' => __( 'Link Color', 'birdfield' ),
'section' => 'colors',
'settings' => 'birdfield_link_color',
)));
// Header, Footer Background Color
$wp_customize->add_setting( 'birdfield_header_color',
array(
'default' => '#79a596',
'sanitize_callback' => 'maybe_hash_hex_color',
));
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'birdfield_header_color',
array(
'label' => __( 'Header, Footer Background Color', 'birdfield' ),
'section' => 'colors',
'settings' => 'birdfield_header_color',
)));
// Footer Section
$wp_customize->add_section( 'birdfield_customize',
array(
'title' => __( 'Footer', 'birdfield' ),
'priority' => 62,
));
// Display Copyright
$wp_customize->add_setting( 'birdfield_copyright',
array(
'default' => true,
'sanitize_callback' => 'birdfield_sanitize_checkbox',
));
$wp_customize->add_control( 'birdfield_copyright',
array(
'label' => __( 'Display Copyright', 'birdfield' ),
'section' => 'birdfield_customize',
'type' => 'checkbox',
'settings' => 'birdfield_copyright',
));
// Display Credit
$wp_customize->add_setting( 'birdfield_credit',
array(
'default' => true,
'sanitize_callback' => 'birdfield_sanitize_checkbox',
));
$wp_customize->add_control( 'birdfield_credit',
array(
'label' => __( 'Display Credit', 'birdfield' ),
'section' => 'birdfield_customize',
'type' => 'checkbox',
'settings' => 'birdfield_credit',
));
}
add_action( 'customize_register', 'birdfield_customize' );
//////////////////////////////////////////////////////
// Santize a checkbox
function birdfield_sanitize_checkbox( $input ) {
if ( $input == true ) {
return true;
} else {
return false;
}
}
///////////////////////////////////////////////////////
// Sanitize text
function birdfield_sanitize_text( $input ) {
return wp_kses_post( force_balance_tags( $input ) );
}
//////////////////////////////////////////////////////
// Get default colors
function birdfield_get_default_colors() {
return array( 'header_text_color' => '#ffffff',
'header_color' => '#79a596',
'text_color' => '#222327',
'link_color' => '#1c4bbe' );
}
//////////////////////////////////////////////////////
// Enqueues front-end CSS for the Theme Customizer.
function birdfield_color_css() {
// default color
$birdfield_default_colors = birdfield_get_default_colors();
// Custom Header Text Color
$birdfield_header_text_color = get_header_textcolor();
if( !empty( $birdfield_header_text_color ) && strcasecmp( $birdfield_header_text_color, trim( $birdfield_default_colors[ 'header_text_color' ], '#' ))) {
$birdfield_css = "
/* Custom Header Text Color */
#header #branding #site-title,
#header #branding #site-title a,
#header #branding #site-description,
#menu-wrapper .menu ul#menu-primary-items li a,
#menu-wrapper .menu #small-menu,
#widget-area .widget,
#footer,
#footer a {
color: #{$birdfield_header_text_color};
}
#menu-wrapper .menu ul#menu-primary-items li a {
border-color: #{$birdfield_header_text_color};
}
#menu-wrapper .menu #small-menu .icon,
#menu-wrapper .menu #small-menu .icon:before,
#menu-wrapper .menu #small-menu .icon:after {
background-color: #{$birdfield_header_text_color};
}
@media screen and (min-width: 930px) {
#menu-wrapper .menu ul#menu-primary-items li a:hover {
background-color: #{$birdfield_header_text_color};
}
#menu-wrapper .menu ul#menu-primary-items li ul li a,
#menu-wrapper .menu ul#menu-primary-items li ul li:first-child a {
border-color: #{$birdfield_header_text_color};
}
}
";
wp_add_inline_style( 'birdfield', $birdfield_css );
}
// Custom Text Color
$birdfield_text_color = get_theme_mod( 'birdfield_text_color', $birdfield_default_colors[ 'text_color' ] );
if( strcasecmp( $birdfield_text_color, $birdfield_default_colors[ 'text_color' ] )) {
$birdfield_css = "
/* Custom Text Color */
.wrapper,
.home #content #blog ul.article .hentry .entry-header .entry-title,
.archive #content ul.list li a .entry-content,
.search #content ul.list li a .entry-content {
color: {$birdfield_text_color};
}
";
wp_add_inline_style( 'birdfield', $birdfield_css );
}
// Custom Link Color
$birdfield_link_color = get_theme_mod( 'birdfield_link_color', $birdfield_default_colors[ 'link_color' ] );
if( strcasecmp( $birdfield_link_color, $birdfield_default_colors[ 'link_color' ] )) {
$birdfield_css = "
/* Custom Link Color */
a,
#content .pagination a.page-numbers,
#content .pagination .more-link,
#content .hentry .page-links,
#content .hentry .page-links a span,
.home #content #news ul.article li .entry-header .entry-title,
.archive #content ul.list li .entry-header .entry-title,
.search #content ul.list li .entry-header .entry-title {
color: {$birdfield_link_color};
}
#content .pagination a.page-numbers,
#content .pagination .current,
#content .hentry .page-links span,
#content .hentry .page-links a span {
border-color: {$birdfield_link_color};
}
#content .pagination .current,
#content .hentry .page-links span {
background-color: {$birdfield_link_color};
}
";
wp_add_inline_style( 'birdfield', $birdfield_css );
}
// Custom Header, Footer Background Color
$birdfield_header_color = get_theme_mod( 'birdfield_header_color', $birdfield_default_colors[ 'header_color' ] );
if( strcasecmp( $birdfield_header_color, $birdfield_default_colors[ 'header_color' ] )) {
$birdfield_header_color_rgb = birdfield_hex2rgb( $birdfield_header_color );
$birdfield_css = "
/* Custom Header, Footer Background Color */
#header,
#footer,
#widget-area,
.home #content #blog ul.article .hentry.sticky i span {
background-color: {$birdfield_header_color};
}
#header.mini {
background-color: rgba( {$birdfield_header_color_rgb}, 0.9 );
}
#content .hentry .entry-header .entry-title,
#content .hentry .content-header .content-title,
.home #about .widget h3,
.home #content h2,
.home #content #blog ul.article .hentry.sticky .entry-header .entry-title,
.blog #content #blog ul.article .hentry.sticky .entry-header .entry-title,
#content h1,
#content h2,
#content h3,
#content h4,
#content h5,
#content h6,
#content #comments ol.commentlist li.pingback.bypostauthor .comment-author,
#content #comments ol.commentlist li.comment.bypostauthor .comment-author,
#widget-area .widget #wp-calendar tbody th a,
#widget-area .widget #wp-calendar tbody td a {
color: {$birdfield_header_color};
}
#content h2,
#content h3 {
border-color: {$birdfield_header_color};
}
@media screen and (min-width: 930px) {
#menu-wrapper .menu ul#menu-primary-items li a:hover {
color: {$birdfield_header_color};
}
#menu-wrapper .menu ul#menu-primary-items li ul li a:hover {
border-color: {$birdfield_header_color};
}
#menu-wrapper .menu ul#menu-primary-items li ul li a {
background-color: {$birdfield_header_color};
}
}
";
wp_add_inline_style( 'birdfield', $birdfield_css );
}
}
add_action( 'wp_enqueue_scripts', 'birdfield_color_css', 11 );
//////////////////////////////////////////////////////
// Excerpt More
function birdfield_excerpt_more($more) {
return '' .__( 'Continue reading', 'birdfield' ) . '';
}
add_filter('excerpt_more', 'birdfield_excerpt_more');
//////////////////////////////////////////////////////
// Removing the default gallery style
function birdfield_gallery_atts( $out, $pairs, $atts ) {
$atts = shortcode_atts( array( 'size' => 'medium', ), $atts );
$out['size'] = $atts['size'];
return $out;
}
add_filter( 'shortcode_atts_gallery', 'birdfield_gallery_atts', 10, 3 );
add_filter( 'use_default_gallery_style', '__return_false' );
//////////////////////////////////////////////////////
// Custom Background callback
function birdfield_custom_background_cb() {
// $background is the saved custom image, or the default image.
$background = set_url_scheme( get_background_image() );
// $color is the saved custom color.
// A default has to be specified in style.css. It will not be printed here.
$color = get_background_color();
if ( $color === get_theme_support( 'custom-background', 'default-color' ) ) {
$color = false;
}
if ( ! $background && ! $color )
return;
$style = $color ? "background-color: #$color;" : '';
if ( $background ) {
$image = " background-image: url('$background');";
$repeat = get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) );
if ( ! in_array( $repeat, array( 'no-repeat', 'repeat-x', 'repeat-y', 'repeat' ) ) )
$repeat = 'repeat';
$repeat = " background-repeat: $repeat;";
$position = get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) );
if ( ! in_array( $position, array( 'center', 'right', 'left' ) ) )
$position = 'left';
$position = " background-position: top $position;";
$attachment = get_theme_mod( 'background_attachment', get_theme_support( 'custom-background', 'default-attachment' ) );
if ( ! in_array( $attachment, array( 'fixed', 'scroll' ) ) )
$attachment = 'scroll';
$attachment = " background-attachment: $attachment;";
$style .= $image . $repeat . $position . $attachment;
}
?>
';
}
echo $birdfield_html;
?>