tag in add_theme_support( 'title-tag' ); // Enable Font Icons // Disable this (remove this line) if the theme doesnt use font icons, // or if the font-awesome library is being enqueued by some other plugin using // a handle other than 'font-awesome' or 'fontawesome' (to avoid loading the // library twice) add_theme_support( 'font-awesome' ); // Enable google fonts (fixed fonts, or entire library) add_theme_support( 'google-fonts' ); // Enable widgetized template (options in Admin Panel) add_theme_support( 'hoot-widgetized-template' ); /** WordPress **/ // Add theme support for WordPress Custom Logo add_theme_support( 'custom-logo' ); // Adds theme support for WordPress 'featured images'. add_theme_support( 'post-thumbnails' ); // Automatically add feed links to . add_theme_support( 'automatic-feed-links' ); /** WordPress Jetpack **/ add_theme_support( 'infinite-scroll', array( 'type' => apply_filters( 'hoot_theme_jetpack_infinitescroll_type', 'click' ), // scroll or click 'container' => apply_filters( 'hoot_theme_jetpack_infinitescroll_container', 'content-wrap' ), 'footer' => false, 'wrapper' => true, 'render' => apply_filters( 'hoot_theme_jetpack_infinitescroll_render', 'hoot_jetpack_infinitescroll_render' ), ) ); add_filter( 'jetpack_lazy_images_blacklisted_classes', array( $this, 'jetpack_lazy_load_exclude' ) ); /** Hoot Extensions **/ // Enable custom widgets add_theme_support( 'hoot-core-widgets' ); // Pagination. add_theme_support( 'loop-pagination' ); // Nicer [gallery] shortcode implementation when Jetpack tiled-gallery is not active if ( !class_exists( 'Jetpack' ) || !Jetpack::is_module_active( 'tiled-gallery' ) ) add_theme_support( 'cleaner-gallery' ); // Better captions for themes to style. add_theme_support( 'cleaner-caption' ); /** WooCommerce **/ // Woocommerce support and init load theme woo functions if ( class_exists( 'WooCommerce' ) ) { add_theme_support( 'woocommerce' ); include_once( trailingslashit( THEME_DIR ) . 'woocommerce/functions.php' ); } /** Tribe The Events Calendar Plugin **/ // Load support if plugin active if ( class_exists( 'Tribe__Events__Main' ) ) { // Hook into 'wp' to use conditional hooks add_action( 'wp', array( $this, 'tribeevent' ), 10 ); } /** One click demo import **/ // Disable branding add_filter( 'pt-ocdi/disable_pt_branding', array( $this, 'hoot_theme_disable_pt_branding' ) ); } /** * Disable branding * @since 4.7 */ function hoot_theme_disable_pt_branding() { return true; } /** * Add hooks based on view * @since 4.7.3 */ function tribeevent() { if ( is_post_type_archive( 'tribe_events' ) || ( function_exists( 'tribe_is_events_home' ) && tribe_is_events_home() ) ) { add_filter( 'theme_mod_archive_type', array( $this, 'tribeevent_archivetype' ), 5 ); add_filter( 'theme_mod_archive_post_content', array( $this, 'tribeevent_archive' ), 5 ); add_filter( 'theme_mod_archive_post_meta', array( $this, 'tribeevent_archive_postmeta' ), 5 ); add_action( 'hoot_display_loop_meta', array( $this, 'tribeevent_loopmeta' ), 5 ); } if ( is_singular( 'tribe_events' ) ) { add_action( 'hoot_display_loop_meta', array( $this, 'tribeevent_loopmeta_single' ), 5 ); add_filter( 'theme_mod_post_featured_image', array( $this, 'tribeevent_post_featured_image' ), 5 ); } } /** * Modify theme options and displays * @since 4.7.3 */ function tribeevent_archivetype( $type ) { return 'medium'; } // Use medium instead of big for chromatic only function tribeevent_archive( $content ) { return 'full-content'; } function tribeevent_archive_postmeta( $args ) { return ''; } function tribeevent_loopmeta( $display ) { return false; } function tribeevent_loopmeta_single( $display ) { the_post(); rewind_posts(); // Bug Fix return false; } function tribeevent_post_featured_image( $image ) { return false; } /** * Exclude images from jetpack's lazy load * * @since 4.6 * @access public * @return void */ function jetpack_lazy_load_exclude( $classes ) { if ( !is_array( $classes ) ) $classes = array(); $classes[] = 'hootslider-html-slide-img'; $classes[] = 'hootslider-html-slide-image'; $classes[] = 'hootslider-image-slide-img'; $classes[] = 'hootslider-carousel-slide-img'; return $classes; } /** * Add AMP support * @since 4.9.2 */ function amp(){ if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) { add_action( 'wp_enqueue_scripts', array( $this, 'amp_remove_scripts' ), 999 ); add_filter( 'hoot_attr_body', array( $this, 'amp_attr_body' ) ); add_filter( 'theme_mod_mobile_submenu_click', array( $this, 'amp_emptymod' ) ); // add_filter( 'theme_mod_custom_js', array( $this, 'amp_emptymod' ) ); } } function amp_remove_scripts(){ $dequeue = array_map( 'wp_dequeue_script', array( 'comment-reply', 'jquery', 'modernizr', 'hoverIntent', 'superfish', 'lightSlider', 'fitvids', 'hoot-theme', 'hoot-theme-premium', 'lightGallery', 'isotope', 'waypoints', 'waypoints-sticky', 'hoot-scrollpoints', 'hoot-scroller', ) ); } function amp_attr_body( $attr ) { $attr['class'] = ( empty( $attr['class'] ) ) ? ' hootamp' : $attr['class'] . ' hootamp'; return $attr; } function amp_emptymod(){ return 0; } /** * Theme setup on the 'wp' hook. Only used for special scenarios based on conditional tags. * Like enqueueing scripts/styles conditionally, or adding theme support so that enqueue functions * hooked into 'wp_enqueue_scripts' load the script/styles. * * @since 1.0 * @access public * @return void */ function conditional_theme_setup() { /* Enable Light Slider if its the 'Widgetized Template' */ if ( is_page_template() ) { $template_slug = get_page_template_slug(); if ( 'page-templates/template-widgetized.php' == $template_slug ) { add_theme_support( 'light-slider' ); } } } /** * Handle content width for embeds and images. * * @since 1.0 * @access public * @return void */ function content_width() { $width = intval( hoot_get_mod( 'site_width' ) ); $width = !empty( $width ) ? $width : 1260; hoot_set_content_width( $width ); } /** * Modify the '[...]' Read More Text * * @since 1.0 * @access public * @return string */ function modify_read_more_link( $more = '[...]' ) { if ( is_admin() ) return $more; elseif ( is_feed() ) return apply_filters( 'hoot_rssreadmoretext', '' ); $read_more = hoot_get_mod('read_more'); $read_more = ( empty( $read_more ) ) ? sprintf( __( 'Read More %s', 'chromatic' ), '→' ) : $read_more; global $post; $read_more = '' . $read_more . ''; return apply_filters( 'hoot_readmore', $read_more ) ; } /** * Always display the 'Read More' link in Excerpts. * Insert quicktag to be replaced later in 'wp_trim_excerpt()' * * @since 2.12 * @access public * @return string */ function insert_excerpt_readmore_quicktag( $more = '' ) { if ( is_admin() ) return $more; return ''; } /** * Always display the 'Read More' link in Excerpts. * Replace quicktag with read more link * * @since 2.12 * @access public * @return string */ function replace_excerpt_readmore_quicktag( $text, $raw_excerpt ) { if ( is_admin() ) return $text; $read_more = $this->modify_read_more_link(); $text = str_replace( '', '', $text ); return $text . $read_more; } /** * Modify the exceprt length. * * @since 1.0 * @access public * @return void */ function custom_excerpt_length( $length ) { if ( is_admin() ) return $length; $excerpt_length = intval( hoot_get_mod('excerpt_length') ); if ( !empty( $excerpt_length ) ) return $excerpt_length; return 105; } } // end class } // end if