__( 'Primary', 'apex' ) ) ); } } add_action( 'after_setup_theme', 'ct_apex_theme_setup', 10 ); // remove filters adding partial micro-data due to validation issues function apex_remove_hybrid_filters() { remove_filter( 'the_author_posts_link', 'hybrid_the_author_posts_link', 5 ); remove_filter( 'get_comment_author_link', 'hybrid_get_comment_author_link', 5 ); remove_filter( 'get_comment_author_url_link', 'hybrid_get_comment_author_url_link', 5 ); remove_filter( 'comment_reply_link', 'hybrid_comment_reply_link_filter', 5 ); remove_filter( 'get_avatar', 'hybrid_get_avatar', 5 ); remove_filter( 'post_thumbnail_html', 'hybrid_post_thumbnail_html', 5 ); remove_filter( 'comments_popup_link_attributes', 'hybrid_comments_popup_link_attributes', 5 ); } add_action('after_setup_theme', 'apex_remove_hybrid_filters'); // turn off cleaner gallery if Jetpack gallery functions being used function ct_apex_remove_cleaner_gallery() { if( class_exists( 'Jetpack' ) && ( Jetpack::is_module_active( 'carousel' ) || Jetpack::is_module_active( 'tiled-gallery' ) ) ) { remove_theme_support( 'cleaner-gallery' ); } } add_action( 'after_setup_theme', 'ct_apex_remove_cleaner_gallery', 11 ); // register widget areas function ct_apex_register_widget_areas(){ /* register after post content widget area */ hybrid_register_sidebar( array( 'name' => __( 'Primary Sidebar', 'apex' ), 'id' => 'primary', 'description' => __( 'Widgets in this area will be shown in the sidebar next to the main post content', 'apex' ) ) ); } add_action('widgets_init','ct_apex_register_widget_areas'); /* added to customize the comments. Same as default except -> added use of gravatar images for comment authors */ if( ! function_exists( ( 'ct_apex_customize_comments' ) ) ) { function ct_apex_customize_comments( $comment, $args, $depth ) { $GLOBALS['comment'] = $comment; global $post; ?>
'; $fields['url'] = '
'; return $fields; } } add_filter('comment_form_default_fields','apex_update_fields'); if( ! function_exists( 'apex_update_comment_field' ) ) { function apex_update_comment_field( $comment_field ) { $comment_field = '
'; return $comment_field; } } add_filter('comment_form_field_comment','apex_update_comment_field'); // remove allowed tags text after comment form if( ! function_exists( 'ct_apex_remove_comments_notes_after' ) ) { function ct_apex_remove_comments_notes_after( $defaults ) { $defaults['comment_notes_after'] = ''; return $defaults; } } add_action('comment_form_defaults', 'ct_apex_remove_comments_notes_after'); // excerpt handling if( ! function_exists( 'ct_apex_excerpt' ) ) { function ct_apex_excerpt() { // make post variable available global $post; // make 'read more' setting available global $more; // check for the more tag $ismore = strpos( $post->post_content, '' ); // get the show full post setting $show_full_post = get_theme_mod( 'full_post' ); // if show full post is on, show full post unless on search page if ( ( $show_full_post == 'yes' ) && ! is_search() ) { // set read more value for all posts to 'off' $more = - 1; // output the full content the_content(); } // use the read more link if present elseif ( $ismore ) { the_content( __( 'Continue reading', 'apex' ) . " " . get_the_title() . "" ); } // otherwise the excerpt is automatic, so output it else { the_excerpt(); } } } // filter the link on excerpts if( ! function_exists( 'ct_apex_excerpt_read_more_link' ) ) { function ct_apex_excerpt_read_more_link( $output ) { global $post; return $output . "
" . __( 'Continue reading', 'apex' ) . " " . get_the_title() . "
"; } } add_filter('the_excerpt', 'ct_apex_excerpt_read_more_link'); // change the length of the excerpts if( ! function_exists( 'apex_custom_excerpt_length' ) ) { function apex_custom_excerpt_length( $length ) { $new_excerpt_length = get_theme_mod('excerpt_length'); // if there is a new length set and it's not 15, change it if( ! empty( $new_excerpt_length ) && $new_excerpt_length != 25 ){ return $new_excerpt_length; } else { return 25; } } } add_filter( 'excerpt_length', 'apex_custom_excerpt_length', 99 ); // switch [...] to ellipsis on automatic excerpt if( ! function_exists( 'ct_apex_new_excerpt_more' ) ) { function ct_apex_new_excerpt_more( $more ) { return '…'; } } add_filter('excerpt_more', 'ct_apex_new_excerpt_more'); // turns of the automatic scrolling to the read more link if( ! function_exists( 'ct_apex_remove_more_link_scroll' ) ) { function ct_apex_remove_more_link_scroll( $link ) { $link = preg_replace( '|#more-[0-9]+|', '', $link ); return $link; } } add_filter( 'the_content_more_link', 'ct_apex_remove_more_link_scroll' ); // for displaying featured images if( ! function_exists( 'ct_apex_featured_image' ) ) { function ct_apex_featured_image() { // get post object global $post; // default to no featured image $has_image = false; // establish featured image var $featured_image = ''; // if post has an image if ( has_post_thumbnail( $post->ID ) ) { // get the featured image ID $image_id = get_post_thumbnail_id( $post->ID ); // get the image's alt text $image_alt_text = get_post_meta($image_id, '_wp_attachment_image_alt', true); // get the full-size version of the image $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); // set $image = the url $image = $image[0]; // if alt text is empty, nothing else equal to title string $title = empty($image_alt_text) ? '' : "title='$image_alt_text'"; // set to true $has_image = true; } if ( $has_image == true ) { // on posts/pages display the featured image if ( is_singular() ) { $featured_image = ""; } // on blog/archives display with a link else { $featured_image = " "; } } // allow videos to be added $featured_image = apply_filters( 'ct_apex_featured_image', $featured_image ); if( $featured_image ) { echo $featured_image; } } } // fix for bug with Disqus saying comments are closed if ( function_exists( 'dsq_options' ) ) { remove_filter( 'comments_template', 'dsq_comments_template' ); add_filter( 'comments_template', 'dsq_comments_template', 99 ); // You can use any priority higher than '10' } // associative array of social media sites function ct_apex_social_array() { $social_sites = array( 'twitter' => 'apex_twitter_profile', 'facebook' => 'apex_facebook_profile', 'google-plus' => 'apex_googleplus_profile', 'pinterest' => 'apex_pinterest_profile', 'linkedin' => 'apex_linkedin_profile', 'youtube' => 'apex_youtube_profile', 'vimeo' => 'apex_vimeo_profile', 'tumblr' => 'apex_tumblr_profile', 'instagram' => 'apex_instagram_profile', 'flickr' => 'apex_flickr_profile', 'dribbble' => 'apex_dribbble_profile', 'rss' => 'apex_rss_profile', 'reddit' => 'apex_reddit_profile', 'soundcloud' => 'apex_soundcloud_profile', 'spotify' => 'apex_spotify_profile', 'vine' => 'apex_vine_profile', 'yahoo' => 'apex_yahoo_profile', 'behance' => 'apex_behance_profile', 'codepen' => 'apex_codepen_profile', 'delicious' => 'apex_delicious_profile', 'stumbleupon' => 'apex_stumbleupon_profile', 'deviantart' => 'apex_deviantart_profile', 'digg' => 'apex_digg_profile', 'git' => 'apex_git_profile', 'hacker-news' => 'apex_hacker-news_profile', 'steam' => 'apex_steam_profile', 'vk' => 'apex_vk_profile', 'weibo' => 'apex_weibo_profile', 'tencent-weibo' => 'apex_tencent_weibo_profile', 'email' => 'apex_email_profile' ); return $social_sites; } // used in ct_apex_social_icons_output to return urls function ct_apex_get_social_url($source, $site){ if( $source == 'header' ) { return get_theme_mod($site); } elseif( $source == 'author' ) { return get_the_author_meta($site); } } // output social icons if( ! function_exists('ct_apex_social_icons_output') ) { function ct_apex_social_icons_output($source) { // get social sites array $social_sites = ct_apex_social_array(); // store the site name and url foreach ( $social_sites as $social_site => $profile ) { if( $source == 'header') { if ( strlen( get_theme_mod( $social_site ) ) > 0 ) { $active_sites[$social_site] = $social_site; } } elseif( $source == 'author' ) { if ( strlen( get_the_author_meta( $profile ) ) > 0 ) { $active_sites[$profile] = $social_site; } } } // for each active social site, add it as a list item if ( ! empty( $active_sites ) ) { echo "