__('Primary', 'author') )); } add_action( 'after_setup_theme', 'ct_author_theme_setup', 10 ); // remove filters adding partial micro-data due to validation issues function ct_author_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', 'ct_author_remove_hybrid_filters'); // turn off cleaner gallery if Jetpack gallery functions being used function ct_author_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_author_remove_cleaner_gallery', 11 ); // register widget areas function ct_author_register_widget_areas(){ /* register after post content widget area */ hybrid_register_sidebar( array( 'name' => __( 'Primary Sidebar', 'author' ), 'id' => 'primary', 'description' => __( 'Widgets in this area will be shown in the sidebar', 'author' ) ) ); } add_action('widgets_init','ct_author_register_widget_areas'); /* added to customize the comments. Same as default except -> added use of gravatar images for comment authors */ function ct_author_customize_comments( $comment, $args, $depth ) { $GLOBALS['comment'] = $comment; $comment_type = $comment->comment_type; ?>
'; $fields['url'] = '
'; return $fields; } } add_filter('comment_form_default_fields','ct_author_update_fields'); if( ! function_exists( 'ct_author_update_comment_field' ) ) { function ct_author_update_comment_field( $comment_field ) { $comment_field = '
'; return $comment_field; } } add_filter('comment_form_field_comment','ct_author_update_comment_field'); // remove allowed tags text after comment form function ct_author_remove_comments_notes_after($defaults){ $defaults['comment_notes_after']=''; return $defaults; } add_action('comment_form_defaults', 'ct_author_remove_comments_notes_after'); // excerpt handling if( ! function_exists( 'ct_author_excerpt' ) ) { function ct_author_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', 'author' ) . "" . get_the_title() . "" ); } // otherwise the excerpt is automatic, so output it else { the_excerpt(); } } } // filter the link on excerpts function ct_author_excerpt_read_more_link($output) { global $post; return $output . "
" . __('Continue reading', 'author') . "" . get_the_title() . "
"; } add_filter('the_excerpt', 'ct_author_excerpt_read_more_link'); // change the length of the excerpts function ct_author_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', 'ct_author_custom_excerpt_length', 99 ); // switch [...] to ellipsis on automatic excerpt function ct_author_new_excerpt_more( $more ) { return '…'; } add_filter('excerpt_more', 'ct_author_new_excerpt_more'); // turns of the automatic scrolling to the read more link function ct_author_remove_more_link_scroll( $link ) { $link = preg_replace( '|#more-[0-9]+|', '', $link ); return $link; } add_filter( 'the_content_more_link', 'ct_author_remove_more_link_scroll' ); // for displaying featured images function ct_author_featured_image() { // get post object global $post; // default to no featured image $has_image = false; // if post has an image if (has_post_thumbnail( $post->ID ) ) { // 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]; $has_image = true; } if ($has_image == true) { // on posts/pages display the featued image if(is_singular()){ $featured_image = ""; } // on blog/archives display with a link else { $featured_image = " "; } $featured_image = apply_filters( 'ct_author_featured_image', $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_author_social_array(){ $social_sites = array( 'twitter' => 'author_twitter_profile', 'facebook' => 'author_facebook_profile', 'google-plus' => 'author_googleplus_profile', 'pinterest' => 'author_pinterest_profile', 'linkedin' => 'author_linkedin_profile', 'youtube' => 'author_youtube_profile', 'vimeo' => 'author_vimeo_profile', 'tumblr' => 'author_tumblr_profile', 'instagram' => 'author_instagram_profile', 'flickr' => 'author_flickr_profile', 'dribbble' => 'author_dribbble_profile', 'rss' => 'author_rss_profile', 'reddit' => 'author_reddit_profile', 'soundcloud' => 'author_soundcloud_profile', 'spotify' => 'author_spotify_profile', 'vine' => 'author_vine_profile', 'yahoo' => 'author_yahoo_profile', 'behance' => 'author_behance_profile', 'codepen' => 'author_codepen_profile', 'delicious' => 'author_delicious_profile', 'stumbleupon' => 'author_stumbleupon_profile', 'deviantart' => 'author_deviantart_profile', 'digg' => 'author_digg_profile', 'git' => 'author_git_profile', 'hacker-news' => 'author_hacker-news_profile', 'steam' => 'author_steam_profile', 'vk' => 'author_vk_profile', 'weibo' => 'author_weibo_profile', 'tencent-weibo' => 'author_tencent_weibo_profile', 'email' => 'author_email_profile' ); return $social_sites; } // used in ct_author_social_icons_output to return urls function ct_author_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_author_social_icons_output') ) { function ct_author_social_icons_output($source) { // get social sites array $social_sites = ct_author_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 "