Version ) ); define( 'BAVOTASAN_THEME_NAME', $bavotasan_theme_data->Name ); define( 'BAVOTASAN_THEME_FILE', get_option( 'template' ) ); define( 'FONT_AWESOME_VERSION', '4.0.3' ); /** * Includes * * @since 1.0.0 */ require( BAVOTASAN_THEME_TEMPLATE . '/library/customizer.php' ); // Functions for theme options page require( BAVOTASAN_THEME_TEMPLATE . '/library/preview-pro.php' ); // Functions for preview pro page require( BAVOTASAN_THEME_TEMPLATE . '/library/custom-metaboxes.php' ); // Functions for home page alignment /** * Prepare the content width * * @since 1.0.0 */ $bavotasan_theme_options = bavotasan_theme_options(); $array_content = array( 'col-md-2' => .1666, 'col-md-3' => .25, 'col-md-4' => .3333, 'col-md-5' => .4166, 'col-md-6' => .5, 'col-md-7' => .5833, 'col-md-8' => .6666, 'col-md-9' => .75, 'col-md-10' => .8333, 'col-md-12' => 1 ); $bavotasan_main_content = $array_content[$bavotasan_theme_options['primary']] * $bavotasan_theme_options['width'] - 30; if ( ! isset( $content_width ) ) $content_width = round( $bavotasan_main_content ); add_action( 'after_setup_theme', 'bavotasan_setup' ); if ( ! function_exists( 'bavotasan_setup' ) ) : /** * Initial setup * * This function is attached to the 'after_setup_theme' action hook. * * @uses load_theme_textdomain() * @uses get_locale() * @uses BAVOTASAN_THEME_TEMPLATE * @uses add_theme_support() * @uses add_editor_style() * @uses add_custom_background() * @uses add_custom_image_header() * @uses register_default_headers() * * @since 1.0.0 */ function bavotasan_setup() { load_theme_textdomain( 'arcade', BAVOTASAN_THEME_TEMPLATE . '/library/languages' ); // Add default posts and comments RSS feed links to . add_theme_support( 'automatic-feed-links' ); // This theme styles the visual editor with editor-style.css to match the theme style. add_editor_style(); // This theme uses wp_nav_menu() in two location. register_nav_menu( 'primary', __( 'Primary Menu', 'arcade' ) ); // Add support for a variety of post formats add_theme_support( 'post-formats', array( 'gallery', 'image', 'video', 'audio', 'quote', 'link', 'status', 'aside' ) ); // This theme uses Featured Images (also known as post thumbnails) for archive pages add_theme_support( 'post-thumbnails' ); add_image_size( 'half', 570, 220, true ); add_image_size( 'square100', 100, 100, true ); // Add a filter to bavotasan_header_image_width and bavotasan_header_image_height to change the width and height of your custom header. add_theme_support( 'custom-header', array( 'header-text' => false, 'flex-height' => true, 'flex-width' => true, 'random-default' => true, 'width' => apply_filters( 'bavotasan_header_image_width', 1500 ), 'height' => apply_filters( 'bavotasan_header_image_height', 600 ), ) ); // Default custom headers packaged with the theme. %s is a placeholder for the theme template directory URI. register_default_headers( array( 'header01' => array( 'url' => '%s/library/images/header01.jpg', 'thumbnail_url' => '%s/library/images/header01-thumbnail.jpg', 'description' => __( 'Default Header 1', 'arcade' ) ), ) ); // Add support for custom backgrounds add_theme_support( 'custom-background' ); // Add HTML5 elements add_theme_support( 'html5', array( 'comment-list', 'comment-form', ) ); // Infinite scroll add_theme_support( 'infinite-scroll', array( 'type' => 'scroll', 'container' => 'primary', 'wrapper' => false, 'footer' => false, ) ); } endif; // bavotasan_setup add_action( 'pre_get_posts', 'bavotasan_home_page_query' ); /** * Set up home page query * * This function is attached to the 'pre_get_posts' action hook. * * @since 1.0.0 */ function bavotasan_home_page_query( $query ) { if ( $query->is_home() && $query->is_main_query() ) { if ( get_queried_object_id() == get_option('page_for_posts') ) return; $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $per_page = get_option( 'posts_per_page' ); $offset = ( 1 < $paged ) ? ( 10 * ( $paged - 1 ) + 4 ) - $per_page : 0; $show = ( 0 == $offset ) ? 4 : $per_page; $query->set( 'ignore_sticky_posts', true ); $query->set( 'posts_per_page', $show ); $query->set( 'offset', $offset ); } } add_action( 'wp_head', 'bavotasan_styles' ); /** * Add a style block to the theme for the current link color. * * This function is attached to the 'wp_head' action hook. * * @since 1.0.0 */ function bavotasan_styles() { $bavotasan_theme_options = bavotasan_theme_options(); ?> $bavotasan_theme_options['arc'], ) ); wp_enqueue_style( 'theme_stylesheet', get_stylesheet_uri() ); wp_enqueue_style( 'google_fonts', '//fonts.googleapis.com/css?family=Megrim|Raleway|Open+Sans:400,400italic,700,700italic', false, null, 'all' ); wp_enqueue_style( 'font_awesome', esc_url( '//netdna.bootstrapcdn.com/font-awesome/' . FONT_AWESOME_VERSION . '/css/font-awesome.css' ), false, null, 'all' ); } endif; // bavotasan_add_js add_action( 'widgets_init', 'bavotasan_widgets_init' ); if ( ! function_exists( 'bavotasan_widgets_init' ) ) : /** * Creating the two sidebars * * This function is attached to the 'widgets_init' action hook. * * @uses register_sidebar() * * @since 1.0.0 */ function bavotasan_widgets_init() { $bavotasan_theme_options = bavotasan_theme_options(); require( BAVOTASAN_THEME_TEMPLATE . '/library/widgets/widget-image-icon.php' ); // Custom Image/Icon Text widget register_sidebar( array( 'name' => __( 'First Sidebar', 'arcade' ), 'id' => 'sidebar', 'description' => __( 'This is the first sidebar. It won\'t appear on the home page unless you set a static front page.', 'arcade' ), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); register_sidebar( array( 'name' => __( 'Home Page Top Area', 'arcade' ), 'id' => 'home-page-top-area', 'description' => __( 'Area on the home page above the main content. Designed specifically for four Icon & Text widgets. Add at least one widget to make it appear.', 'arcade' ), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', ) ); } endif; // bavotasan_widgets_init /** * Add pagination * * @uses paginate_links() * @uses add_query_arg() * * @since 1.0.0 */ function bavotasan_pagination() { global $wp_query, $paged, $bavotasan_grid_query; $wp_query = ( $bavotasan_grid_query ) ? $bavotasan_grid_query : $wp_query; // Don't print empty markup if there's only one page. if ( $wp_query->max_num_pages < 2 && 0 == $paged ) return; ?> = 2 || $page >= 2 ) $title = "$title $sep " . sprintf( __( 'Page %s', 'arcade' ), max( $paged, $page ) ); return $title; } endif; // bavotasan_filter_wp_title if ( ! function_exists( 'bavotasan_comment' ) ) : /** * Callback function for comments * * Referenced via wp_list_comments() in comments.php. * * @uses get_avatar() * @uses get_comment_author_link() * @uses get_comment_date() * @uses get_comment_time() * @uses edit_comment_link() * @uses comment_text() * @uses comments_open() * @uses comment_reply_link() * * @since 1.0.0 */ function bavotasan_comment( $comment, $args, $depth ) { $GLOBALS['comment'] = $comment; switch ( $comment->comment_type ) : case '' : ?>
  • >
    comment_approved ) { echo '' . __( 'Your comment is awaiting moderation.', 'arcade' ) . ''; } ?>
    comment_type ) { ?>
    $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
  • ' . $text . ' ' . __( 'Read more →', 'arcade' ) . '

    '; } endif; // bavotasan_excerpt_more add_filter( 'the_content_more_link', 'bavotasan_content_more_link', 10, 2 ); if ( ! function_exists( 'bavotasan_content_more_link' ) ) : /** * Customize read more link for content * * This function is attached to the 'the_content_more_link' filter hook. * * @param string $link * @param string $text * * @return Custom read more link * * @since 1.0.0 */ function bavotasan_content_more_link( $link, $text ) { return '' . $text . ''; } endif; // bavotasan_content_more_link add_filter( 'excerpt_length', 'bavotasan_excerpt_length', 999 ); if ( ! function_exists( 'bavotasan_excerpt_length' ) ) : /** * Custom excerpt length * * This function is attached to the 'excerpt_length' filter hook. * * @param int $length * * @return Custom excerpt length * * @since 1.0.0 */ function bavotasan_excerpt_length( $length ) { global $bavotasan_custom_excerpt_length; if ( $bavotasan_custom_excerpt_length ) return $bavotasan_custom_excerpt_length; return 60; } endif; // bavotasan_excerpt_length /* * Remove default gallery styles */ add_filter( 'use_default_gallery_style', '__return_false' ); /** * Print the attached image with a link to the next attached image. * * @since 1.0.9 */ function bavotasan_the_attached_image() { $post = get_post(); $attachment_size = apply_filters( 'bavotasan_attachment_size', array( 810, 810 ) ); $next_attachment_url = wp_get_attachment_url(); $attachment_ids = get_posts( array( 'post_parent' => $post->post_parent, 'fields' => 'ids', 'numberposts' => -1, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID', ) ); if ( count( $attachment_ids ) > 1 ) { foreach ( $attachment_ids as $attachment_id ) { if ( $attachment_id == $post->ID ) { $next_id = current( $attachment_ids ); break; } } if ( $next_id ) $next_attachment_url = get_attachment_link( $next_id ); else $next_attachment_url = get_attachment_link( array_shift( $attachment_ids ) ); } printf( '%2$s', esc_url( $next_attachment_url ), wp_get_attachment_image( $post->ID, $attachment_size ) ); } /** * Create the required attributes for the #primary container * * @since 1.0.0 */ function bavotasan_primary_attr() { $bavotasan_theme_options = bavotasan_theme_options(); $primary = str_replace( 'col-md-', '', $bavotasan_theme_options['primary'] ); $secondary = ( is_active_sidebar( 'second-sidebar' ) ) ? str_replace( 'col-md-', '', $bavotasan_theme_options['secondary'] ) : 12 - $primary; $tertiary = 12 - $primary - $secondary; $class = $bavotasan_theme_options['primary']; $class = ( 'left' == $bavotasan_theme_options['layout'] ) ? $class . ' pull-right' : $class; echo 'class="' . $class . ' hfeed"'; } /** * Create the required classes for the #secondary sidebar container * * @since 1.0.0 */ function bavotasan_sidebar_class() { $bavotasan_theme_options = bavotasan_theme_options(); $primary = str_replace( 'col-md-', '', $bavotasan_theme_options['primary'] ); $end = ( 'right' == $bavotasan_theme_options['layout'] ) ? ' end' : ''; $class = 'col-md-' . ( 12 - $primary ) . $end; echo 'class="' . $class . '"'; } /** * Default menu * * Referenced via wp_nav_menu() in header.php. * * @since 1.0.0 */ function bavotasan_default_menu( $args ) { extract( $args ); $output = wp_list_categories( array( 'title_li' => '', 'echo' => 0, 'number' => 5, 'depth' => 1, ) ); echo ""; } /** * Add bootstrap classes to menu items * * @since 1.0.0 */ class Bavotasan_Page_Navigation_Walker extends Walker_Nav_Menu { function check_current( $classes ) { return preg_match( '/(current[-_])|active|dropdown/', $classes ); } function start_lvl( &$output, $depth = 0, $args = array() ) { $output .= "\n