ID, 'benevolent_sidebar_layout', true );
if( $sidebar_layout == 'no-sidebar' )
$classes[] = 'full-width';
}
if( get_theme_mod( 'benevolent_ed_slider' ) ){
$classes[] = 'has-slider';
}
return $classes;
}
add_filter( 'body_class', 'benevolent_body_classes' );
/**
* Custom Bread Crumb
*
* @link http://www.qualitytuts.com/wordpress-custom-breadcrumbs-without-plugin/
*/
function benevolent_breadcrumbs_cb() {
$showOnHome = 0; // 1 - show breadcrumbs on the homepage, 0 - don't show
$delimiter = esc_html( get_theme_mod( 'benevolent_breadcrumb_separator', __( '>', 'benevolent' ) ) ); // delimiter between crumbs
$home = esc_html( get_theme_mod( 'benevolent_breadcrumb_home_text', __( 'Home', 'benevolent' ) ) ); // text for the 'Home' link
$showCurrent = get_theme_mod( 'benevolent_ed_current', '1' ); // 1 - show current post/page title in breadcrumbs, 0 - don't show
$before = ''; // tag before the current crumb
$after = ''; // tag after the current crumb
global $post;
$homeLink = esc_url( home_url( ) );
if (is_home() || is_front_page()) {
if ($showOnHome == 1) echo '
';
} else {
echo '' . $home . ' ' . $delimiter . ' ';
if ( is_category() ) {
$thisCat = get_category(get_query_var('cat'), false);
if ($thisCat->parent != 0) echo get_category_parents($thisCat->parent, TRUE, ' ' . $delimiter . ' ');
echo $before . single_cat_title('', false) . $after;
} elseif ( is_search() ) {
echo $before . esc_html__( 'Search Result', 'benevolent' ) . $after;
} elseif ( is_day() ) {
echo '
' . esc_html( get_the_time('Y') ) . ' ' . $delimiter . ' ';
echo '
' . esc_html( get_the_time('F') ) . ' ' . $delimiter . ' ';
echo $before . esc_html( get_the_time('d') ) . $after;
} elseif ( is_month() ) {
echo '
' . esc_html( get_the_time('Y') ) . ' ' . $delimiter . ' ';
echo $before . esc_html( get_the_time('F') ) . $after;
} elseif ( is_year() ) {
echo $before . esc_html( get_the_time('Y') ) . $after;
} elseif ( is_single() && !is_attachment() ) {
if ( get_post_type() != 'post' ) {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
echo '
' . esc_html( $post_type->labels->singular_name ) . '';
if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . esc_html( get_the_title() ) . $after;
} else {
$cat = get_the_category(); $cat = $cat[0];
$cats = get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
if ($showCurrent == 0) $cats = preg_replace("#^(.+)\s$delimiter\s$#", "$1", $cats);
echo $cats;
if ($showCurrent == 1) echo $before . esc_html( get_the_title() ) . $after;
}
} elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
$post_type = get_post_type_object(get_post_type());
echo $before . esc_html( $post_type->labels->singular_name ) . $after;
} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo '
' . esc_html( $parent->post_title ) . '';
if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . esc_html( get_the_title() ) . $after;
} elseif ( is_page() && !$post->post_parent ) {
if ($showCurrent == 1) echo $before . esc_html( get_the_title() ) . $after;
} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '
' . esc_html( get_the_title( $page->ID ) ) . '';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
for ($i = 0; $i < count($breadcrumbs); $i++) {
echo $breadcrumbs[$i];
if ($i != count($breadcrumbs)-1) echo ' ' . $delimiter . ' ';
}
if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . esc_html( get_the_title() ) . $after;
} elseif ( is_tag() ) {
echo $before . esc_html( single_tag_title('', false) ) . $after;
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $before . esc_html( $userdata->display_name ) . $after;
}
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo __( 'Page', 'benevolent' ) . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}
echo '
';
}
} // end benevolent_breadcrumbs()
add_action( 'benevolent_breadcrumbs', 'benevolent_breadcrumbs_cb' );
/**
* Social Links Callback
*/
function benevolent_social_links_cb(){
$facebook = get_theme_mod( 'benevolent_facebook' );
$twitter = get_theme_mod( 'benevolent_twitter' );
$pinterest = get_theme_mod( 'benevolent_pinterest' );
$linkedin = get_theme_mod( 'benevolent_linkedin' );
$gplus = get_theme_mod( 'benevolent_gplus' );
$instagram = get_theme_mod( 'benevolent_instagram' );
$youtube = get_theme_mod( 'benevolent_youtube' );
if( $facebook || $twitter || $pinterest || $linkedin || $gplus || $instagram || $youtube ){
?>
< id="comment-">
array(
'class' => 'intro',
'id' => 'intro'
),
'community-section' => array(
'class' => 'our-community',
'id' => 'community'
),
'stats-section' => array(
'class' => 'stats',
'id' => 'stats'
),
'blog-section' => array(
'class' => 'blog-section',
'id' => 'blog'
),
'sponsor-section' => array(
'class' => 'sponsors',
'id' => 'sponsor'
)
);
$enabled_section = array();
foreach ( $sections as $section ) {
if ( esc_attr( get_theme_mod( 'benevolent_ed_' . $section['id'] . '_section' ) ) == 1 ){
$enabled_section[] = array(
'id' => $section['id'],
'class' => $section['class']
);
}
}
return $enabled_section;
}
/**
* Callback for Banner Slider
*/
function benevolent_slider_cb(){
$slider_caption = get_theme_mod( 'benevolent_slider_caption', '1' );
$slider_readmore = get_theme_mod( 'benevolent_slider_readmore', __( 'Learn More', 'benevolent' ) );
$slider_cat = get_theme_mod( 'benevolent_slider_cat' );
if( $slider_cat ){
$slider_qry = new WP_Query( array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'cat' => $slider_cat,
'ignore_sticky_posts' => true
) );
if( $slider_qry->have_posts() ){
echo '';
while( $slider_qry->have_posts()) {
$slider_qry->the_post();
if( has_post_thumbnail() ){
?>
-
'image' ) );
if( $slider_caption ){
?>
';
wp_reset_postdata();
}
}
}
add_action( 'benevolent_slider', 'benevolent_slider_cb' );
/**
* Callback Function for Promotional Block
*/
function benevolent_promotional_cb(){
$ed_promotional_section = get_theme_mod( 'benevolent_ed_promotional_section' );
$promotional_section_title = get_theme_mod( 'benevolent_promotional_section_title' );
$promotional_button_text = get_theme_mod( 'benevolent_promotional_button_text' );
$promotional_button_url = get_theme_mod( 'benevolent_promotional_button_url' );
$promotional_section_bg = get_theme_mod( 'benevolent_promotional_section_bg' );
if( $ed_promotional_section ){
?>
';
echo '';
if( $logo ) echo '';
if( $title || $url ){
$target = $ed_new_tab ? ' target="_blank"' : '';
echo '';
if( $title ) echo '
' . esc_html( $title ) . '';
if( $url && $link ) echo '
' . esc_html( $link ) . '';
echo '
';
}
echo '';
}
}
/**
* Helper function for listing sponsor
*/
function benevolent_sponsor_helper( $logo, $url ){
if( $url ) echo '';
if( $logo ) echo '';
if( $url ) echo '';
}
/**
* Helper function for listing stat counter
*/
function benevolent_stat_helper( $title, $counter ){
if( $counter ){ ?>
' . esc_html( $title ) . ''; ?>
';
echo wp_strip_all_tags( $custom_css );
echo '';
}
}
add_action( 'wp_head', 'benevolent_custom_css', 100 );
}
if ( ! function_exists( 'benevolent_excerpt_more' ) ) :
/**
* Replaces "[...]" (appended to automatically generated excerpts) with ... *
*/
function benevolent_excerpt_more( $more ) {
return is_admin() ? $more : ' … ';
}
add_filter( 'excerpt_more', 'benevolent_excerpt_more' );
endif;
if ( ! function_exists( 'benevolent_excerpt_length' ) ) :
/**
* Changes the default 55 character in excerpt
*/
function benevolent_excerpt_length( $length ) {
return is_admin() ? $length : 60;
}
add_filter( 'excerpt_length', 'benevolent_excerpt_length', 999 );
endif;
if( ! function_exists( 'benevolent_footer_credit' ) ) :
/**
* Footer Credits
*/
function benevolent_footer_credit(){
$copyright_text = get_theme_mod( 'benevolent_footer_copyright_text' );
$text = '';
$text .= '
';
if( $copyright_text ){
$text .= wp_kses_post( $copyright_text );
}else{
$text .= esc_html__( '© ', 'benevolent' ) . date_i18n( esc_html__( 'Y', 'benevolent' ) );
$text .= ' ' . esc_html( get_bloginfo( 'name' ) ) . '';
}
$text .= '.';
if ( function_exists( 'the_privacy_policy_link' ) ) {
$text .= get_the_privacy_policy_link();
}
$text .= '
';
$text .= esc_html__( 'Benevolent | Developed By ', 'benevolent' );
$text .= '' . esc_html__( 'Rara Theme', 'benevolent' ) . '. ';
$text .= sprintf( esc_html__( 'Powered by %s', 'benevolent' ), 'WordPress.' );
$text .= ' ';
echo apply_filters( 'benevolent_footer_text', $text );
}
endif;
add_action( 'benevolent_footer', 'benevolent_footer_credit' );
/**
* Return sidebar layouts for pages
*/
function benevolent_sidebar_layout(){
global $post;
if( get_post_meta( $post->ID, 'benevolent_sidebar_layout', true ) ){
return get_post_meta( $post->ID, 'benevolent_sidebar_layout', true );
}else{
return 'right-sidebar';
}
}
/**
* Strip specific tags from string
* @link http://www.altafweb.com/2011/12/remove-specific-tag-from-php-string.html
*/
function benevolent_strip_single( $tag, $string ){
$string = preg_replace('/<'.$tag.'[^>]*>/i', '', $string);
$string = preg_replace('/<\/'.$tag.'>/i', '', $string);
return $string;
}
if( ! function_exists( 'benevolent_single_post_schema' ) ) :
/**
* Single Post Schema
*
* @return string
*/
function benevolent_single_post_schema() {
if ( is_singular( 'post' ) ) {
global $post;
$custom_logo_id = get_theme_mod( 'custom_logo' );
$site_logo = wp_get_attachment_image_src( $custom_logo_id , 'benevolent-schema' );
$images = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' );
$excerpt = benevolent_escape_text_tags( $post->post_excerpt );
$content = $excerpt === "" ? mb_substr( benevolent_escape_text_tags( $post->post_content ), 0, 110 ) : $excerpt;
$schema_type = ! empty( $custom_logo_id ) && has_post_thumbnail( $post->ID ) ? "BlogPosting" : "Blog";
$args = array(
"@context" => "http://schema.org",
"@type" => $schema_type,
"mainEntityOfPage" => array(
"@type" => "WebPage",
"@id" => get_permalink( $post->ID )
),
"headline" => get_the_title( $post->ID ),
"image" => array(
"@type" => "ImageObject",
"url" => $images[0],
"width" => $images[1],
"height" => $images[2]
),
"datePublished" => get_the_time( DATE_ISO8601, $post->ID ),
"dateModified" => get_post_modified_time( DATE_ISO8601, __return_false(), $post->ID ),
"author" => array(
"@type" => "Person",
"name" => benevolent_escape_text_tags( get_the_author_meta( 'display_name', $post->post_author ) )
),
"publisher" => array(
"@type" => "Organization",
"name" => get_bloginfo( 'name' ),
"description" => get_bloginfo( 'description' ),
"logo" => array(
"@type" => "ImageObject",
"url" => $site_logo[0],
"width" => $site_logo[1],
"height" => $site_logo[2]
)
),
"description" => ( class_exists('WPSEO_Meta') ? WPSEO_Meta::get_value( 'metadesc' ) : $content )
);
if ( has_post_thumbnail( $post->ID ) ) :
$args['image'] = array(
"@type" => "ImageObject",
"url" => $images[0],
"width" => $images[1],
"height" => $images[2]
);
endif;
if ( ! empty( $custom_logo_id ) ) :
$args['publisher'] = array(
"@type" => "Organization",
"name" => get_bloginfo( 'name' ),
"description" => get_bloginfo( 'description' ),
"logo" => array(
"@type" => "ImageObject",
"url" => $site_logo[0],
"width" => $site_logo[1],
"height" => $site_logo[2]
)
);
endif;
echo '' , PHP_EOL;
}
}
endif;
add_action( 'wp_head', 'benevolent_single_post_schema' );
if( ! function_exists( 'benevolent_escape_text_tags' ) ) :
/**
* Remove new line tags from string
*
* @param $text
* @return string
*/
function benevolent_escape_text_tags( $text ) {
return (string) str_replace( array( "\r", "\n" ), '', strip_tags( $text ) );
}
endif;
if( ! function_exists( 'benevolent_change_comment_form_default_fields' ) ) :
/**
* Change Comment form default fields i.e. author, email & url.
* https://blog.josemcastaneda.com/2016/08/08/copy-paste-hurting-theme/
*/
function benevolent_change_comment_form_default_fields( $fields ){
// get the current commenter if available
$commenter = wp_get_current_commenter();
// core functionality
$req = get_option( 'require_name_email' );
$aria_req = ( $req ? " aria-required='true'" : '' );
$required = ( $req ? " required" : '' );
$author = ( $req ? __( 'Name*', 'benevolent' ) : __( 'Name', 'benevolent' ) );
$email = ( $req ? __( 'Email*', 'benevolent' ) : __( 'Email', 'benevolent' ) );
// Change just the author field
$fields['author'] = '';
$fields['email'] = '';
$fields['url'] = '';
return $fields;
}
endif;
add_filter( 'comment_form_default_fields', 'benevolent_change_comment_form_default_fields' );
if( ! function_exists( 'benevolent_change_comment_form_defaults' ) ) :
/**
* Change Comment Form defaults
* https://blog.josemcastaneda.com/2016/08/08/copy-paste-hurting-theme/
*/
function benevolent_change_comment_form_defaults( $defaults ){
$defaults['comment_field'] = '';
return $defaults;
}
endif;
add_filter( 'comment_form_defaults', 'benevolent_change_comment_form_defaults' );
if( ! function_exists( 'wp_body_open' ) ) :
/**
* Fire the wp_body_open action.
* Added for backwards compatibility to support pre 5.2.0 WordPress versions.
*/
function wp_body_open() {
/**
* Triggered after the opening tag.
*/
do_action( 'wp_body_open' );
}
endif;
if( ! function_exists( 'benevolent_get_image_sizes' ) ) :
/**
* Get information about available image sizes
*/
function benevolent_get_image_sizes( $size = '' ) {
global $_wp_additional_image_sizes;
$sizes = array();
$get_intermediate_image_sizes = get_intermediate_image_sizes();
// Create the full array with sizes and crop info
foreach( $get_intermediate_image_sizes as $_size ) {
if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
$sizes[ $_size ]['width'] = get_option( $_size . '_size_w' );
$sizes[ $_size ]['height'] = get_option( $_size . '_size_h' );
$sizes[ $_size ]['crop'] = (bool) get_option( $_size . '_crop' );
} elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
$sizes[ $_size ] = array(
'width' => $_wp_additional_image_sizes[ $_size ]['width'],
'height' => $_wp_additional_image_sizes[ $_size ]['height'],
'crop' => $_wp_additional_image_sizes[ $_size ]['crop']
);
}
}
// Get only 1 size if found
if ( $size ) {
if( isset( $sizes[ $size ] ) ) {
return $sizes[ $size ];
} else {
return false;
}
}
return $sizes;
}
endif;
if ( ! function_exists( 'benevolent_get_fallback_svg' ) ) :
/**
* Get Fallback SVG
*/
function benevolent_get_fallback_svg( $post_thumbnail ) {
if( ! $post_thumbnail ){
return;
}
$image_size = benevolent_get_image_sizes( $post_thumbnail );
if( $image_size ){ ?>