', esc_url( get_bloginfo( 'pingback_url' ) ) );
}
}
add_action( 'wp_head', 'colormag_pingback_header' );
/**
* Sets the post excerpt length to 20 words.
*
* Function tied to the excerpt_length filter hook.
*
* @param int $length The excerpt length.
*
* @return int The filtered excerpt length.
* @uses filter excerpt_length
*/
function colormag_excerpt_length( $length ) {
return 20;
}
add_filter( 'excerpt_length', 'colormag_excerpt_length' );
/**
* Returns a "Continue Reading" link for excerpts.
*/
function colormag_continue_reading() {
return '';
}
add_filter( 'excerpt_more', 'colormag_continue_reading' );
/**
* Removing the default style of WordPress gallery.
*/
add_filter( 'use_default_gallery_style', '__return_false' );
/**
* Filtering the size to be full from thumbnail to be used in WordPress gallery as a default size.
*
* @param array $out The output array of shortcode attributes.
* @param array $pairs The supported attributes and their defaults.
* @param array $atts The user defined shortcode attributes.
*
* @return mixed
*/
function colormag_gallery_atts( $out, $pairs, $atts ) {
$atts = shortcode_atts(
array(
'size' => 'colormag-featured-image',
),
$atts
);
$out['size'] = $atts['size'];
return $out;
}
add_filter( 'shortcode_atts_gallery', 'colormag_gallery_atts', 10, 3 );
/**
* Removing the more link jumping to middle of content.
*
* @param string $link Read More link element.
*
* @return string|string[]
*/
function colormag_remove_more_jump_link( $link ) {
$offset = strpos( $link, '#more-' );
if ( $offset ) {
$end = strpos( $link, '"', $offset );
}
if ( $end ) {
$link = substr_replace( $link, '', $offset, $end - $offset );
}
return $link;
}
add_filter( 'the_content_more_link', 'colormag_remove_more_jump_link' );
/**
* Creating responsive video for posts/pages.
*
* @param string|false $html The cached HTML result, stored in post meta.
* @param string $url The attempted embed URL.
* @param array $attr An array of shortcode attributes.
* @param int $post_ID Post ID.
*
* @return string
*/
function colormag_responsive_video( $html, $url, $attr, $post_ID ) {
if ( ! current_theme_supports( 'responsive-embeds' ) ) {
return '
' . $html . '
';
}
return $html;
}
add_filter( 'embed_oembed_html', 'colormag_responsive_video', 10, 4 );
/**
* Use of the hooks for Category Color in the archive titles
*
* @param string $title Category title.
*
* @return string Category page title.
*/
function colormag_colored_category_title( $title ) {
$output = '';
$color_value = colormag_category_color( get_cat_id( $title ) );
$color_border_value = colormag_category_color( get_cat_id( $title ) );
if ( ! empty( $color_value ) ) {
$output = '' . esc_html( $title ) . '
';
} else {
$output = '' . $title . '
';
}
return $output;
}
/**
* Filters the single_cat_title.
*
* @param string $category_title Category title.
*/
function colormag_category_title_function( $category_title ) {
add_filter( 'single_cat_title', 'colormag_colored_category_title' );
}
add_action( 'colormag_category_title', 'colormag_category_title_function' );
/**
* Filter the get_header_image_tag() for option of adding the link back to home page option.
*
* @param string $html The HTML image tag markup being filtered.
* @param object $header The custom header object returned by 'get_custom_header()'.
* @param array $attr Array of the attributes for the image tag.
*
* @return string
*/
function colormag_header_image_markup( $html, $header, $attr ) {
$output = '';
$header_image = get_header_image();
if ( ! empty( $header_image ) ) {
$output .= '';
}
return $output;
}
add_filter( 'get_header_image_tag', 'colormag_header_image_markup', 10, 3 );
/**
* Filter the body_class.
*
* Throwing different body class for the different layouts in the body tag.
*
* @param array $classes CSS classes applied to the body tag.
*
* @return array Classes for body.
*/
function colormag_body_class( $classes ) {
global $post;
if ( $post ) {
$layout_meta = get_post_meta( $post->ID, 'colormag_page_layout', true );
}
if ( is_home() ) {
$queried_id = get_option( 'page_for_posts' );
$layout_meta = get_post_meta( $queried_id, 'colormag_page_layout', true );
}
if ( empty( $layout_meta ) || is_archive() || is_search() ) {
$layout_meta = 'default_layout';
}
$colormag_default_layout = get_theme_mod( 'colormag_default_layout', 'right_sidebar' );
$colormag_default_page_layout = get_theme_mod( 'colormag_default_page_layout', 'right_sidebar' );
$colormag_default_post_layout = get_theme_mod( 'colormag_default_single_posts_layout', 'right_sidebar' );
if ( 'default_layout' === $layout_meta ) {
if ( is_page() ) {
$classes[] = colormag_get_sidebar_layout_class( $colormag_default_page_layout );
} elseif ( is_single() ) {
$classes[] = colormag_get_sidebar_layout_class( $colormag_default_post_layout );
} else {
$classes[] = colormag_get_sidebar_layout_class( $colormag_default_layout );
}
} else {
$classes[] = colormag_get_sidebar_layout_class( $layout_meta );
}
// For site layout option.
$site_layout = get_theme_mod( 'colormag_site_layout', 'wide_layout' );
$classes[] = ( 'wide_layout' === $site_layout ) ? 'wide' : 'box-layout';
// For responsive menu display.
if ( 1 === get_theme_mod( 'colormag_responsive_menu', 0 ) ) {
$classes[] = 'better-responsive-menu';
}
// Add body class for body skin type.
if ( 'dark' === get_theme_mod( 'colormag_color_skin_setting', 'white' ) ) {
$classes[] = 'dark-skin';
}
return $classes;
}
add_filter( 'body_class', 'colormag_body_class' );