';
}
}
}
function head_addons(){
global $shortname, $default_colorscheme;
// phpcs:disable WordPress.WP.EnqueuedResources.NonEnqueuedStylesheet
$color_scheme = apply_filters( 'et_get_additional_color_scheme', et_get_option( $shortname.'_color_scheme' ) );
if ( !empty( $color_scheme ) && $color_scheme !== $default_colorscheme ) { ?>
display( 'Name' ) . ' v.' . $theme_info->display( 'Version' ) ) . '" name="generator"/>';
if ( et_get_option( $shortname . '_custom_colors' ) === 'on' ) et_epanel_custom_colors_css();
// phpcs:enable
}// end function head_addons()
add_action( 'wp_head', 'head_addons', 7 );
function integration_head(){
global $shortname;
/** @see ET_Core_SupportCenter::toggle_safe_mode */
if ( et_core_is_safe_mode_active() ) {
return;
}
$integration_head = et_get_option( $shortname . '_integration_head' );
if ( ! empty( $integration_head ) && et_get_option( $shortname . '_integrate_header_enable' ) === 'on' ) {
$integration_head = et_core_fix_unclosed_html_tags( $integration_head );
echo et_core_intentionally_unescaped( $integration_head, 'html' );
}
}
add_action( 'wp_head', 'integration_head', 12 );
function integration_body(){
global $shortname;
/** @see ET_Core_SupportCenter::toggle_safe_mode */
if ( et_core_is_safe_mode_active() ) {
return;
}
$integration_body = et_get_option( $shortname . '_integration_body' );
if ( ! empty( $integration_body ) && et_get_option( $shortname . '_integrate_body_enable' ) === 'on' ) {
$integration_body = et_core_fix_unclosed_html_tags( $integration_body );
echo et_core_intentionally_unescaped( $integration_body, 'html' );
}
}
add_action( 'wp_footer', 'integration_body', 12 );
function integration_single_top(){
global $shortname;
/** @see ET_Core_SupportCenter::toggle_safe_mode */
if ( et_core_is_safe_mode_active() ) {
return;
}
$integration_single_top = et_get_option( $shortname . '_integration_single_top' );
if ( ! empty( $integration_single_top ) && et_get_option( $shortname . '_integrate_singletop_enable' ) === 'on' ) {
$integration_single_top = et_core_fix_unclosed_html_tags( $integration_single_top );
echo et_core_intentionally_unescaped( $integration_single_top, 'html' );
}
}
add_action( 'et_before_post', 'integration_single_top', 12 );
function integration_single_bottom(){
global $shortname;
/** @see ET_Core_SupportCenter::toggle_safe_mode */
if ( et_core_is_safe_mode_active() ) {
return;
}
$integration_single_bottom = et_get_option( $shortname . '_integration_single_bottom' );
if ( ! empty( $integration_single_bottom ) && et_get_option( $shortname . '_integrate_singlebottom_enable' ) === 'on' ) {
$integration_single_bottom = et_core_fix_unclosed_html_tags( $integration_single_bottom );
echo et_core_intentionally_unescaped( $integration_single_bottom, 'html' );
}
}
add_action( 'et_after_post', 'integration_single_bottom', 12 );
/*this function gets page name by its id*/
if ( ! function_exists( 'get_pagename' ) ) {
function get_pagename( $page_id )
{
$page_object = get_page( $page_id );
return apply_filters( 'the_title', $page_object->post_title, $page_id );
}
}
/*this function gets category name by its id*/
if ( ! function_exists( 'get_categname' ) ) {
function get_categname( $cat_id )
{
return get_cat_name( $cat_id );
}
}
/*this function gets category id by its name*/
if ( ! function_exists( 'get_catId' ) ) {
function get_catId( $cat_name, $taxonomy = 'category' )
{
$cat_name_id = is_numeric( $cat_name ) ? (int) $cat_name : (int) get_cat_ID( html_entity_decode( $cat_name, ENT_QUOTES ) );
// wpml compatibility
if ( function_exists( 'icl_object_id' ) ) {
$cat_name_id = (int) icl_object_id( $cat_name_id, $taxonomy, true );
}
return $cat_name_id;
}
}
/*this function gets page id by its name*/
if ( ! function_exists( 'get_pageId' ) ) {
function get_pageId( $page_name )
{
if ( is_numeric( $page_name ) ) {
$page_id = intval( $page_name );
} else {
$page_name = html_entity_decode( $page_name, ENT_QUOTES );
$page = get_page_by_title( $page_name );
$page_id = intval( $page->ID );
}
// wpml compatibility
if ( function_exists( 'icl_object_id' ) )
$page_id = (int) icl_object_id( $page_id, 'page', true );
return $page_id;
}
}
/**
* Transforms an array of posts, pages, post_tags or categories ids
* into corresponding "objects" ids, if WPML plugin is installed
*
* @param array $ids_array Posts, pages, post_tags or categories ids.
* @param string $type "Object" type.
* @return array IDs.
*/
if ( ! function_exists( 'et_generate_wpml_ids' ) ) {
function et_generate_wpml_ids( $ids_array, $type ) {
if ( function_exists( 'icl_object_id' ) ) {
$wpml_ids = array();
foreach ( $ids_array as $id ) {
$translated_id = icl_object_id( $id, $type, false );
if ( ! is_null( $translated_id ) ) $wpml_ids[] = $translated_id;
}
$ids_array = $wpml_ids;
}
return array_map( 'intval', $ids_array );
}
}
if ( ! function_exists( 'elegant_is_blog_posts_page' ) ) {
function elegant_is_blog_posts_page() {
/**
* Returns true if static page is set in WP-Admin / Settings / Reading
* and Posts page is displayed
*/
static $et_is_blog_posts_cached = null;
if ( null === $et_is_blog_posts_cached ) {
$et_is_blog_posts_cached = (bool) is_home() && 0 !== intval( get_option( 'page_for_posts', '0' ) );
}
return $et_is_blog_posts_cached;
}
}
// Added for backwards compatibility
if ( ! function_exists( 'elegant_titles' ) ) {
function elegant_titles() {
if ( ! function_exists( 'wp_get_document_title' ) ) {
wp_title();
} else {
echo et_core_esc_wp( wp_get_document_title() );
}
}
}
if ( ! function_exists( '_wp_render_title_tag' ) && ! function_exists( 'et_add_title_tag_back_compat' ) ) {
/**
* Manually add tag in head for WordPress 4.1 below for backward compatibility
* Title tag is automatically added for WordPress 4.1 above via theme support
* @return void
*/
function et_add_title_tag_back_compat() {
?>
post->ID;
$key = et_get_option( $shortname . '_seo_single_field_title' );
$exists3 = $key ? get_post_meta( $postid, $key, true ) : '';
if ( 'on' === et_get_option( $shortname . '_seo_single_title' ) && '' !== $exists3 ) {
$custom_title = $exists3;
} else {
$seo_single_type = et_get_option( $shortname . '_seo_single_type' );
$seo_single_separate = et_get_option( $shortname . '_seo_single_separate' );
$page_title = single_post_title( '', false );
if ( $seo_single_type === 'BlogName | Post title' ) {
$custom_title = $sitename . esc_html( $seo_single_separate ) . $page_title;
}
if ( $seo_single_type === 'Post title | BlogName' ) {
$custom_title = $page_title . esc_html( $seo_single_separate ) . $sitename;
}
if ( $seo_single_type === 'Post title only' ) {
$custom_title = $page_title;
}
}
}
#if the title is being displayed on index pages (categories/archives/search results)
if ( is_category() || is_archive() || is_search() || is_404() ) {
$page_title = '';
$seo_index_type = et_get_option( $shortname . '_seo_index_type' );
$seo_index_separate = et_get_option( $shortname . '_seo_index_separate' );
if ( is_category() || is_tag() || is_tax() ) {
$page_title = single_term_title( '', false );
} else if ( is_post_type_archive() ) {
$page_title = post_type_archive_title( '', false );
} else if ( is_author() ) {
$page_title = get_the_author_meta( 'display_name', get_query_var( 'author' ) );
} else if ( is_date() ) {
$page_title = esc_html__( 'Archives', $themename );
} else if ( is_search() ) {
$page_title = sprintf( esc_html__( 'Search results for "%s"', $themename ), esc_attr( get_search_query() ) );
} else if ( is_404() ) {
$page_title = esc_html__( '404 Not Found', $themename );
}
if ( $seo_index_type === 'BlogName | Category name' ) {
$custom_title = $sitename . esc_html( $seo_index_separate ) . $page_title;
}
if ( $seo_index_type === 'Category name | BlogName') {
$custom_title = $page_title . esc_html( $seo_index_separate ) . $sitename;
}
if ( $seo_index_type === 'Category name only') {
$custom_title = $page_title;
}
}
$custom_title = wp_strip_all_tags( $custom_title );
return $custom_title;
}
}
add_filter( 'pre_get_document_title', 'elegant_titles_filter' );
if ( ! function_exists( 'et_is_seo_plugin_active' ) ) {
/**
* Determine if SEO plugin is active.
*
* @since ??
* @return bool
*/
function et_is_seo_plugin_active() {
// WordPress SEO.
if ( class_exists( 'WPSEO_Frontend' ) ) {
return true;
}
// All In One SEO Pack.
if ( class_exists( 'All_in_One_SEO_Pack' ) ) {
return true;
}
// Rank Math SEO.
if ( class_exists( 'RankMath\Frontend\Frontend' ) ) {
return true;
}
return false;
}
}
/*this function controls the meta description display*/
if ( ! function_exists( 'elegant_description' ) ) {
function elegant_description() {
// Don't use ePanel SEO if a SEO plugin is active.
if ( et_is_seo_plugin_active() ) {
return;
}
global $shortname, $themename;
#homepage descriptions
if ( et_get_option( $shortname.'_seo_home_description' ) === 'on' && ( ( is_home() || is_front_page() ) && ! elegant_is_blog_posts_page() ) ) {
echo '';
}
#single page descriptions
if ( et_get_option( $shortname.'_seo_single_description' ) === 'on' && ( is_single() || is_page() || elegant_is_blog_posts_page() ) ) {
global $wp_query;
if ( isset( $wp_query->post->ID ) || elegant_is_blog_posts_page() ) {
$postid = elegant_is_blog_posts_page() ? intval( get_option( 'page_for_posts' ) ) : $wp_query->post->ID;
}
$key2 = et_get_option( $shortname . '_seo_single_field_description' );
$exists = ( $postid && $key2 ) ? get_post_meta( $postid, $key2, true ) : '';
if ( $exists !== '' ) {
echo '';
}
}
#index descriptions
$seo_index_description = et_get_option( $shortname.'_seo_index_description' );
if ( $seo_index_description === 'on' ) {
$is_pre_4_4 = version_compare( $GLOBALS['wp_version'], '4.4', '<' );
$description_added = false;
if ( is_category() ) {
remove_filter( 'term_description', 'wpautop' );
$cat = get_query_var( 'cat' );
$exists2 = category_description( $cat );
if ( $exists2 !== '' ) {
echo '';
$description_added = true;
}
}
if ( is_archive() && ! $description_added ) {
$description_text = $is_pre_4_4 ? sprintf( esc_html__( 'Currently viewing archives from %1$s', $themename ),
wp_title( '', false, '' )
) : get_the_archive_title();
printf( '',
esc_attr( $description_text )
);
$description_added = true;
}
if ( is_search() && ! $description_added ) {
$description_text = $is_pre_4_4 ? wp_title( '', false, '' ) : sprintf(
esc_html__( 'Search Results for: %s', $themename ),
get_search_query()
);
echo '';
$description_added = true;
}
}
}
}
/*this function controls the meta keywords display*/
if ( ! function_exists( 'elegant_keywords' ) ) {
function elegant_keywords() {
// Don't use ePanel SEO if a SEO plugin is active.
if ( et_is_seo_plugin_active() ) {
return;
}
global $shortname;
#homepage keywords
if ( et_get_option( $shortname.'_seo_home_keywords' ) === 'on' && ( ( is_home() || is_front_page() ) && ! elegant_is_blog_posts_page() ) ) {
echo '';
}
#single page keywords
if ( et_get_option( $shortname.'_seo_single_keywords' ) === 'on' ) {
global $wp_query;
if ( isset( $wp_query->post->ID ) || elegant_is_blog_posts_page() ) {
$postid = elegant_is_blog_posts_page() ? intval( get_option( 'page_for_posts' ) ) : $wp_query->post->ID;
}
$key3 = et_get_option( $shortname . '_seo_single_field_keywords' );
$exists4 = ( $postid && $key3 ) ? get_post_meta( $postid, $key3, true ) : '';
if ( '' !== $exists4 ) {
if ( is_single() || is_page() || elegant_is_blog_posts_page() ) echo '';
}
}
}
}
/*this function controls canonical urls*/
if ( ! function_exists( 'elegant_canonical' ) ) {
function elegant_canonical() {
// Don't use ePanel SEO if 'rel_canonical' is registered for `wp_head`.
if ( has_action( 'embed_head', 'rel_canonical' ) && is_singular() ) {
return;
}
// Don't use ePanel SEO if a SEO plugin is active.
if ( et_is_seo_plugin_active() ) {
return;
}
global $shortname;
#homepage urls
if ( et_get_option( $shortname.'_seo_home_canonical' ) === 'on' && is_home() && ! elegant_is_blog_posts_page() ) {
echo '';
}
#single page urls
if ( et_get_option( $shortname.'_seo_single_canonical' ) === 'on' ) {
global $wp_query;
if ( isset( $wp_query->post->ID ) || elegant_is_blog_posts_page() ) {
$postid = elegant_is_blog_posts_page() ? intval( get_option( 'page_for_posts' ) ) : $wp_query->post->ID;
}
if ( ( is_single() || is_page() || elegant_is_blog_posts_page() ) && ! is_front_page() ) {
echo '';
}
}
#index page urls
if ( et_get_option( $shortname.'_seo_index_canonical' ) === 'on' ) {
$current_page_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
if ( is_archive() || is_category() || is_search() ) echo '';
}
}
}
add_action( 'wp_head', 'add_favicon' );
function add_favicon(){
global $shortname;
$favicon_url = et_get_option( $shortname . '_favicon' );
// If the `has_site_icon` function doesn't exist (ie we're on < WP 4.3) or if the site icon has not been set,
// and when we have a icon URL from theme option
if ( ( ! function_exists( 'has_site_icon' ) || ! has_site_icon() ) && ! empty( $favicon_url ) ) {
echo '';
} elseif ( function_exists( 'has_site_icon' ) && has_site_icon() ) {
et_update_option( $shortname . '_favicon', '' );
}
}
add_action( 'init', 'et_create_images_temp_folder' );
function et_create_images_temp_folder(){
$et_images_temp_folder = get_option( 'et_images_temp_folder' );
#clean et_temp folder once per week
if ( false !== $last_time = get_option( 'et_schedule_clean_images_last_time' ) ) {
$timeout = 86400 * 7;
if ( ( $timeout < ( time() - $last_time ) ) && ! empty( $et_images_temp_folder ) ) et_clean_temp_images( $et_images_temp_folder );
}
if ( false !== $et_images_temp_folder ) return;
$uploads_dir = wp_upload_dir();
$destination_dir = ( false === $uploads_dir['error'] ) ? path_join( $uploads_dir['basedir'], 'et_temp' ) : '';
if ( ! wp_mkdir_p( $destination_dir ) ) update_option( 'et_images_temp_folder', '' );
else {
update_option( 'et_images_temp_folder', preg_replace( '#\/\/#', '/', $destination_dir ) );
update_option( 'et_schedule_clean_images_last_time', time() );
}
}
if ( ! function_exists( 'et_clean_temp_images' ) ) {
function et_clean_temp_images( $directory ){
$dir_to_clean = @ opendir( $directory );
if ( $dir_to_clean ) {
while (($file = readdir( $dir_to_clean ) ) !== false ) {
if ( substr( $file, 0, 1 ) === '.' )
continue;
if ( is_dir( $directory.'/'.$file ) )
et_clean_temp_images( path_join( $directory, $file ) );
else
@ unlink( path_join( $directory, $file ) );
}
closedir( $dir_to_clean );
}
#set last time cleaning was performed
update_option( 'et_schedule_clean_images_last_time', time() );
}
}
add_filter( 'update_option_upload_path', 'et_update_uploads_dir' );
function et_update_uploads_dir( $upload_path ){
#check if we have 'et_temp' folder within $uploads_dir['basedir'] directory, if not - try creating it, if it's not possible $destination_dir = null
$destination_dir = '';
$uploads_dir = wp_upload_dir();
$et_temp_dir = path_join( $uploads_dir['basedir'], 'et_temp' );
if ( is_dir( $et_temp_dir ) || ( false === $uploads_dir['error'] && wp_mkdir_p( $et_temp_dir ) ) ) {
$destination_dir = $et_temp_dir;
update_option( 'et_schedule_clean_images_last_time', time() );
}
update_option( 'et_images_temp_folder', preg_replace( '#\/\/#', '/', $destination_dir ) );
return $upload_path;
}
if ( ! function_exists( 'et_resize_image' ) ) {
function et_resize_image( $thumb, $new_width, $new_height, $crop ){
/*
* Fixes the issue with x symbol between width and height values in the filename.
* For instance, sports-400x400.jpg file results in 'image not found' in getimagesize() function.
*/
$thumb = str_replace( '%26%23215%3B', 'x', rawurlencode( $thumb ) );
$thumb = rawurldecode( $thumb );
if ( is_ssl() ) $thumb = preg_replace( '#^http://#', 'https://', $thumb );
$info = pathinfo( $thumb );
$ext = $info['extension'];
$name = wp_basename( $thumb, ".$ext" );
$is_jpeg = false;
$site_uri = apply_filters( 'et_resize_image_site_uri', site_url() );
$site_dir = apply_filters( 'et_resize_image_site_dir', ABSPATH );
// If multisite, not the main site, WordPress version < 3.5 or ms-files rewriting is enabled ( not the fresh WordPress installation, updated from the 3.4 version )
if ( is_multisite() && ! is_main_site() && ( ! function_exists( 'wp_get_mime_types' ) || get_site_option( 'ms_files_rewriting' ) ) ) {
//Get main site url on multisite installation
switch_to_blog( 1 );
$site_uri = site_url();
restore_current_blog();
}
/*
* If we're dealing with an external image ( might be the result of Grab the first image function ),
* return original image url
*/
if ( false === strpos( $thumb, $site_uri ) )
return $thumb;
if ( 'jpeg' === $ext ) {
$ext = 'jpg';
$name = preg_replace( '#.jpeg$#', '', $name );
$is_jpeg = true;
}
$suffix = "{$new_width}x{$new_height}";
$et_images_temp_folder = get_option( 'et_images_temp_folder' );
$destination_dir = ! empty( $et_images_temp_folder ) ? preg_replace( '#\/\/#', '/', $et_images_temp_folder ) : null;
$matches = apply_filters( 'et_resize_image_site_dir', array(), $site_dir );
if ( !empty( $matches ) ) {
preg_match( '#'.$matches[1].'$#', $site_uri, $site_uri_matches );
if ( !empty( $site_uri_matches ) ) {
$site_uri = str_replace( $matches[1], '', $site_uri );
$site_uri = preg_replace( '#/$#', '', $site_uri );
$site_dir = str_replace( $matches[1], '', $site_dir );
$site_dir = preg_replace( '#\\\/$#', '', $site_dir );
}
}
#get local name for use in file_exists() and get_imagesize() functions
$localfile = str_replace( apply_filters( 'et_resize_image_localfile', $site_uri, $site_dir, et_multisite_thumbnail( $thumb ) ), $site_dir, et_multisite_thumbnail( $thumb ) );
$add_to_suffix = '';
if ( file_exists( $localfile ) ) $add_to_suffix = filesize( $localfile ) . '_';
#prepend image filesize to be able to use images with the same filename
$suffix = $add_to_suffix . $suffix;
$destfilename_attributes = '-' . $suffix . '.' . strtolower( $ext );
$checkfilename = ( ! empty( $destination_dir ) && null !== $destination_dir ) ? path_join( $destination_dir, $name ) : path_join( dirname( $localfile ), $name );
$checkfilename .= $destfilename_attributes;
if ( $is_jpeg ) $checkfilename = preg_replace( '#.jpg$#', '.jpeg', $checkfilename );
$uploads_dir = wp_upload_dir();
$uploads_dir['basedir'] = preg_replace( '#\/\/#', '/', $uploads_dir['basedir'] );
if ( null !== $destination_dir && ! empty( $destination_dir ) && apply_filters( 'et_enable_uploads_detection', true ) ) {
$site_dir = trailingslashit( preg_replace( '#\/\/#', '/', $uploads_dir['basedir'] ) );
$site_uri = trailingslashit( $uploads_dir['baseurl'] );
}
#check if we have an image with specified width and height
if ( file_exists( $checkfilename ) ) return str_replace( $site_dir, trailingslashit( $site_uri ), $checkfilename );
$size = @getimagesize( $localfile );
if ( !$size ) return new WP_Error( 'invalid_image_path', esc_html__( 'Image doesn\'t exist' ), $thumb );
list($orig_width, $orig_height, $orig_type) = $size;
#check if we're resizing the image to smaller dimensions
if ( $orig_width > $new_width || $orig_height > $new_height ) {
if ( $orig_width < $new_width || $orig_height < $new_height ) {
#don't resize image if new dimensions > than its original ones
if ( $orig_width < $new_width ) $new_width = $orig_width;
if ( $orig_height < $new_height ) $new_height = $orig_height;
#regenerate suffix and appended attributes in case we changed new width or new height dimensions
$suffix = "{$add_to_suffix}{$new_width}x{$new_height}";
$destfilename_attributes = '-' . $suffix . '.' . $ext;
$checkfilename = ( ! empty( $destination_dir ) && null !== $destination_dir ) ? path_join( $destination_dir, $name ) : path_join( dirname( $localfile ), $name );
$checkfilename .= $destfilename_attributes;
#check if we have an image with new calculated width and height parameters
if ( file_exists( $checkfilename ) ) return str_replace( $site_dir, trailingslashit( $site_uri ), $checkfilename );
}
#we didn't find the image in cache, resizing is done here
$et_image_editor = wp_get_image_editor( $localfile );
if ( ! is_wp_error( $et_image_editor ) ) {
$et_image_editor->resize( $new_width, $new_height, $crop );
// generate correct file name/path
$et_new_image_name = $et_image_editor->generate_filename( $suffix, $destination_dir );
do_action( 'et_resize_image_before_save', $et_image_editor, $et_new_image_name );
$et_image_editor->save( $et_new_image_name );
// assign new image path
$result = $et_new_image_name;
} else {
// assign a WP_ERROR ( WP_Image_Editor instance wasn't created properly )
$result = $et_image_editor;
}
if ( ! is_wp_error( $result ) ) {
// transform local image path into URI
if ( $is_jpeg ) $thumb = preg_replace( '#.jpeg$#', '.jpg', $thumb );
$site_dir = str_replace( '\\', '/', $site_dir );
$result = str_replace( '\\', '/', $result );
$result = str_replace( '//', '/', $result );
$result = str_replace( $site_dir, trailingslashit( $site_uri ), $result );
}
#returns resized image path or WP_Error ( if something went wrong during resizing )
return $result;
}
#returns unmodified image, for example in case if the user is trying to resize 800x600px to 1920x1080px image
return $thumb;
}
}
add_action( 'pre_get_posts', 'et_custom_posts_per_page' );
function et_custom_posts_per_page( $query = false ) {
global $shortname;
// phpcs:disable WordPress.Security.NonceVerification.NoNonceVerification
if ( is_admin() ) {
return;
}
if ( ! is_a( $query, 'WP_Query' ) || ( ! $query->is_main_query() || ! empty( $query->et_pb_shop_query ) ) ) {
return;
}
if ( $query->is_category ) {
$query->set( 'posts_per_page', (int) et_get_option( $shortname . '_catnum_posts', '5' ) );
} elseif ( $query->is_tag ) {
$query->set( 'posts_per_page', (int) et_get_option( $shortname . '_tagnum_posts', '5' ) );
} elseif ( $query->is_search ) {
if ( isset( $_GET['et_searchform_submit'] ) ) {
$postTypes = array();
if ( !isset( $_GET['et-inc-posts'] ) && !isset( $_GET['et-inc-pages'] ) ) $postTypes = array('post');
if ( isset( $_GET['et-inc-pages'] ) ) $postTypes = array('page');
if ( isset( $_GET['et-inc-posts'] ) ) $postTypes[] = 'post';
$query->set( 'post_type', $postTypes );
if ( isset( $_GET['et-month-choice'] ) && $_GET['et-month-choice'] !== 'no-choice' ) {
$et_year = substr( $_GET['et-month-choice'], 0, 4 );
$et_month = substr( $_GET['et-month-choice'], 4, strlen( $_GET['et-month-choice'] ) - 4 );
$query->set( 'year', absint( $et_year ) );
$query->set( 'monthnum', absint( $et_month ) );
}
if ( isset( $_GET['et-cat'] ) && $_GET['et-cat'] !== '0' )
$query->set( 'cat', absint( $_GET['et-cat'] ) );
}
$query->set( 'posts_per_page', (int) et_get_option( $shortname . '_searchnum_posts', '5' ) );
} elseif ( $query->is_archive ) {
if ( function_exists( 'is_woocommerce' ) && is_woocommerce() ) {
// Plugin Compatibility :: Skip query->set if "loop_shop_per_page" filter is being used by 3rd party plugins
if ( ! has_filter( 'loop_shop_per_page' ) ) {
$posts_number = (int) et_get_option( $shortname . '_woocommerce_archive_num_posts', '9' );
$query->set( 'posts_per_page', $posts_number );
}
} else {
$posts_number = (int) et_get_option( $shortname . '_archivenum_posts', '5' );
$query->set( 'posts_per_page', $posts_number );
}
}
// phpcs:enable
}
add_filter( 'default_hidden_meta_boxes', 'et_show_hidden_metaboxes', 10, 2 );
function et_show_hidden_metaboxes( $hidden, $screen ){
# make custom fields and excerpt meta boxes show by default
if ( 'post' === $screen->base || 'page' === $screen->base )
$hidden = array(
'slugdiv',
'trackbacksdiv',
'commentstatusdiv',
'commentsdiv',
'authordiv',
'revisionsdiv',
);
return $hidden;
}
add_filter( 'widget_title', 'et_widget_force_title' );
function et_widget_force_title( $title ){
#add an empty title for widgets ( otherwise it might break the sidebar layout )
if ( empty( $title ) ) $title = ' ';
return $title;
}
//modify the comment counts to only reflect the number of comments minus pings
if( version_compare( phpversion(), '4.4', '>=' ) ) add_filter( 'get_comments_number', 'et_comment_count', 0, 2 );
function et_comment_count( $count, $post_id ) {
$is_doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX ? true : false;
if ( ! is_admin() || $is_doing_ajax ) {
global $id;
$post_id = $post_id ? $post_id : $id;
$get_comments = get_comments( array('post_id' => $post_id, 'status' => 'approve') );
$comments_by_type = separate_comments( $get_comments );
return count( $comments_by_type['comment'] );
} else {
return $count;
}
}
add_action( 'admin_init', 'et_theme_check_clean_installation' );
function et_theme_check_clean_installation(){
add_action( 'admin_notices', 'et_theme_epanel_reminder' );
}
if ( ! function_exists( 'et_theme_epanel_reminder' ) ) {
function et_theme_epanel_reminder(){
global $shortname, $themename, $current_screen;
if ( false === et_get_option( $shortname . '_logo' ) && 'appearance_page_core_functions' !== $current_screen->id ) {
printf( et_get_safe_localization( __( '
This is a fresh installation of %1$s theme. Don\'t forget to go to ePanel to set it up. This message will disappear once you have clicked the Save button within the theme\'s options page.
', $themename ) ), esc_html( wp_get_theme() ), esc_url( admin_url( 'themes.php?page=core_functions.php' ) ) );
}
}
}
add_filter( 'body_class', 'et_add_fullwidth_body_class' );
function et_add_fullwidth_body_class( $classes ){
$fullwidth_view = false;
if ( is_page_template( 'page-full.php' ) ) $fullwidth_view = true;
if ( is_page() || is_single() ) {
$et_ptemplate_settings = get_post_meta( get_queried_object_id(), 'et_ptemplate_settings', true );
$fullwidth = isset( $et_ptemplate_settings['et_fullwidthpage'] ) ? (bool) $et_ptemplate_settings['et_fullwidthpage'] : false;
if ( $fullwidth ) $fullwidth_view = true;
}
if ( is_single() && 'on' === get_post_meta( get_queried_object_id(), '_et_full_post', true ) ) $fullwidth_view = true;
$classes[] = apply_filters( 'et_fullwidth_view_body_class', $fullwidth_view ) ? 'et_fullwidth_view' : 'et_includes_sidebar';
return $classes;
}
/**
* Enqueue legacy shortcodes' CSS.
*
* @since ??
*/
function et_add_legacy_shortcode_css() {
wp_enqueue_style(
'et-shortcodes-css',
ET_SHORTCODES_DIR . '/css/shortcodes-legacy.css',
array(),
ET_SHORTCODES_VERSION,
'all'
);
wp_enqueue_style(
'et-shortcodes-responsive-css',
ET_SHORTCODES_DIR . '/css/shortcodes_responsive.css',
false,
ET_SHORTCODES_VERSION,
'all'
);
}
/**
* Enqueue legacy shortcode JS.
*
* @return void
* @since ??
*/
function et_add_legacy_shortcode_js() {
global $themename;
$shortcode_strings_handle = apply_filters( 'et_shortcodes_strings_handle', 'et-shortcodes-js' );
wp_enqueue_script( 'et-shortcodes-js', ET_SHORTCODES_DIR . '/js/et_shortcodes_frontend.js', array( 'jquery' ), ET_SHORTCODES_VERSION, false );
wp_localize_script(
$shortcode_strings_handle,
'et_shortcodes_strings',
array(
'previous' => esc_html__( 'Previous', $themename ),
'next' => esc_html__( 'Next', $themename ),
)
);
}
/**
* Enqueue responsive shortcode CSS in legacy themes when the ePanel option is enabled.
*
* @since ??
*/
function et_add_responsive_shortcodes_css() {
global $shortname;
if ( 'on' === et_get_option( $shortname . '_responsive_shortcodes', 'on' ) )
wp_enqueue_style( 'et-shortcodes-responsive-css', ET_SHORTCODES_DIR . '/css/shortcodes_responsive.css', false, ET_SHORTCODES_VERSION, 'all' );
}
/**
* Loads theme settings
*
*/
if ( ! function_exists( 'et_load_core_options' ) ) {
function et_load_core_options() {
global $shortname;
require_once get_template_directory() . esc_attr( "/options_{$shortname}.php" );
}
}
/**
* Adds custom css option content to
*
*/
function et_add_custom_css() {
// use default wp custom css system starting from WP 4.7
// fallback to our legacy custom css system otherwise
if ( function_exists( 'wp_get_custom_css_post' ) ) {
return;
}
global $shortname;
$custom_css = et_get_option( "{$shortname}_custom_css" );
if ( empty( $custom_css ) ) return;
/**
* The theme doesn't strip slashes from custom css, when saving to the database,
* so it does that before outputting the code on front-end
*/
echo '';
}
add_action( 'wp_head', 'et_add_custom_css', 100 );
if ( ! function_exists( 'et_get_google_fonts' ) ) :
/**
* Returns the list of popular google fonts
* Fallback to websafe fonts if disabled
*/
function et_get_google_fonts() {
$websafe_fonts = et_core_get_websafe_fonts();
$google_fonts = et_core_use_google_fonts() ? et_core_get_saved_google_fonts() : $websafe_fonts;
return apply_filters( 'et_google_fonts', $google_fonts );
}
endif;
if ( ! function_exists( 'et_get_websafe_font_stack' ) ) :
/**
* Determines a websafe font stack, using font type
*
*/
function et_get_websafe_font_stack( $type = 'sans-serif' ) {
$font_stack = '';
switch ( $type ) {
case 'sans-serif':
$font_stack = 'Helvetica, Arial, Lucida, sans-serif';
break;
case 'serif':
$font_stack = 'Georgia, "Times New Roman", serif';
break;
case 'cursive':
$font_stack = 'cursive';
break;
}
return $font_stack;
}
endif;
if ( ! function_exists( 'et_gf_attach_font' ) ) :
/**
* Attaches Google Font to given css elements
*
*/
function et_gf_attach_font( $et_gf_font_name, $elements ) {
$google_fonts = et_get_google_fonts();
printf( '%s { font-family: \'%s\', %s; }',
esc_html( $elements ),
esc_html( $et_gf_font_name ),
et_core_esc_previously( et_get_websafe_font_stack( $google_fonts[$et_gf_font_name]['type'] ) )
);
}
endif;
if ( ! function_exists( 'et_gf_enqueue_fonts' ) ) :
/**
* Enqueues Google Fonts
*
*/
function et_gf_enqueue_fonts( $et_gf_font_names ) {
global $shortname;
if ( ! is_array( $et_gf_font_names ) || empty( $et_gf_font_names ) || ! et_core_use_google_fonts() ) {
return;
}
$google_fonts = et_get_google_fonts();
$protocol = is_ssl() ? 'https' : 'http';
foreach ( $et_gf_font_names as $et_gf_font_name ) {
$google_font_character_set = $google_fonts[$et_gf_font_name]['character_set'];
// By default, only latin and latin-ext subsets are loaded, all available subsets can be enabled in ePanel
if ( 'false' === et_get_option( "{$shortname}_gf_enable_all_character_sets", 'false' ) ) {
$latin_ext = '';
if ( false !== strpos( $google_fonts[$et_gf_font_name]['character_set'], 'latin-ext' ) )
$latin_ext = ',latin-ext';
$google_font_character_set = "latin{$latin_ext}";
}
$query_args = array(
'family' => sprintf( '%s:%s',
str_replace( ' ', '+', $et_gf_font_name ),
apply_filters( 'et_gf_set_styles', $google_fonts[$et_gf_font_name]['styles'], $et_gf_font_name )
),
'subset' => apply_filters( 'et_gf_set_character_set', $google_font_character_set, $et_gf_font_name ),
);
$et_gf_font_name_slug = strtolower( str_replace( ' ', '-', $et_gf_font_name ) );
wp_enqueue_style( 'et-gf-' . $et_gf_font_name_slug, esc_url( add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" ) ), array(), null );
}
}
endif;
if ( ! function_exists( 'et_pb_get_google_api_key' ) ) :
function et_pb_get_google_api_key() {
$google_api_option = get_option( 'et_google_api_settings' );
$google_api_key = isset( $google_api_option['api_key'] ) ? $google_api_option['api_key'] : '';
return $google_api_key;
}
endif;
if ( ! function_exists( 'et_uc_theme_name' ) ) :
/**
* Fixes the bug with lowercase theme name, preventing a theme to update correctly,
* when an update is being performed via Themes page
*/
function et_uc_theme_name( $key, $raw_key ) {
if ( ! ( is_admin() && isset( $_REQUEST['action'] ) && 'update-theme' === $_REQUEST['action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.NoNonceVerification
return $key;
}
$theme_info = wp_get_theme();
if ( is_child_theme() ) {
$theme_info = wp_get_theme( $theme_info->parent_theme );
}
$theme_name = $theme_info->display( 'Name' );
if ( $raw_key !== $theme_name ) {
return $key;
}
return $theme_name;
}
add_filter( 'sanitize_key', 'et_uc_theme_name', 10, 2 );
endif;
if ( ! function_exists( 'et_core_exists_in_active_plugins' ) ) :
function et_core_exists_in_active_plugins() {
$result = defined( 'ET_BUILDER_PLUGIN_DIR' )
|| defined( 'ET_BLOOM_PLUGIN_DIR' )
|| defined( 'ET_MONARCH_PLUGIN_DIR' );
return $result;
}
endif;