Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/epanel
File: custom_functions.php
<?php
[0] Fix | Delete
[1] Fix | Delete
// Prevent file from being loaded directly
[2] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[3] Fix | Delete
die( '-1' );
[4] Fix | Delete
}
[5] Fix | Delete
[6] Fix | Delete
add_theme_support( 'custom-background', apply_filters( 'et_custom_background_args', array() ) );
[7] Fix | Delete
[8] Fix | Delete
if ( function_exists( 'add_post_type_support' ) ) {
[9] Fix | Delete
add_post_type_support( 'page', 'excerpt' );
[10] Fix | Delete
}
[11] Fix | Delete
[12] Fix | Delete
add_theme_support( 'automatic-feed-links' );
[13] Fix | Delete
[14] Fix | Delete
add_action( 'init', 'et_activate_features' );
[15] Fix | Delete
[16] Fix | Delete
function et_activate_features() {
[17] Fix | Delete
if ( ! defined( 'ET_SHORTCODES_VERSION' ) ) {
[18] Fix | Delete
define( 'ET_SHORTCODES_VERSION', et_get_theme_version() );
[19] Fix | Delete
}
[20] Fix | Delete
[21] Fix | Delete
if ( ! defined( 'ET_SHORTCODES_DIR' ) ) {
[22] Fix | Delete
define( 'ET_SHORTCODES_DIR', get_template_directory_uri() . '/epanel/shortcodes' );
[23] Fix | Delete
}
[24] Fix | Delete
[25] Fix | Delete
/* activate shortcodes */
[26] Fix | Delete
require_once TEMPLATEPATH . '/epanel/shortcodes/shortcodes.php';
[27] Fix | Delete
[28] Fix | Delete
/* activate page templates */
[29] Fix | Delete
require_once TEMPLATEPATH . '/includes/page_templates/page_templates.php';
[30] Fix | Delete
[31] Fix | Delete
/* import epanel settings */
[32] Fix | Delete
require_once TEMPLATEPATH . '/includes/import_settings.php';
[33] Fix | Delete
}
[34] Fix | Delete
[35] Fix | Delete
add_filter( 'widget_text', 'do_shortcode' );
[36] Fix | Delete
add_filter( 'the_excerpt', 'do_shortcode' );
[37] Fix | Delete
[38] Fix | Delete
if ( ! function_exists( 'et_get_theme_version' ) ) :
[39] Fix | Delete
function et_get_theme_version() {
[40] Fix | Delete
$theme_info = wp_get_theme();
[41] Fix | Delete
[42] Fix | Delete
if ( is_child_theme() ) {
[43] Fix | Delete
$theme_info = wp_get_theme( $theme_info->parent_theme );
[44] Fix | Delete
}
[45] Fix | Delete
[46] Fix | Delete
$theme_version = $theme_info->display( 'Version' );
[47] Fix | Delete
[48] Fix | Delete
return $theme_version;
[49] Fix | Delete
}
[50] Fix | Delete
endif;
[51] Fix | Delete
[52] Fix | Delete
if ( ! function_exists( 'et_options_stored_in_one_row' ) ) {
[53] Fix | Delete
[54] Fix | Delete
function et_options_stored_in_one_row(){
[55] Fix | Delete
global $et_store_options_in_one_row;
[56] Fix | Delete
[57] Fix | Delete
return isset( $et_store_options_in_one_row ) ? (bool) $et_store_options_in_one_row : false;
[58] Fix | Delete
}
[59] Fix | Delete
[60] Fix | Delete
}
[61] Fix | Delete
[62] Fix | Delete
/* sync custom CSS from ePanel with WP custom CSS option introduced in WP 4.7 */
[63] Fix | Delete
if ( ! function_exists( 'et_sync_custom_css_options' ) ) {
[64] Fix | Delete
function et_sync_custom_css_options() {
[65] Fix | Delete
global $shortname;
[66] Fix | Delete
[67] Fix | Delete
$legacy_custom_css = wp_unslash( et_get_option( "{$shortname}_custom_css" ) );
[68] Fix | Delete
[69] Fix | Delete
// nothing to sync if no custom css saved in ePanel
[70] Fix | Delete
if ( '' === $legacy_custom_css || ! $legacy_custom_css || empty( $legacy_custom_css ) ) {
[71] Fix | Delete
set_theme_mod( 'et_pb_css_synced', 'yes' );
[72] Fix | Delete
return;
[73] Fix | Delete
}
[74] Fix | Delete
[75] Fix | Delete
// don't proceed with the sync logic if the custom CSS option does not exist
[76] Fix | Delete
if ( ! function_exists( 'wp_get_custom_css' ) ) {
[77] Fix | Delete
return;
[78] Fix | Delete
}
[79] Fix | Delete
[80] Fix | Delete
$css_synced = get_theme_mod( 'et_pb_css_synced', 'no' );
[81] Fix | Delete
[82] Fix | Delete
// get custom css string from WP customizer
[83] Fix | Delete
$wp_custom_css = wp_get_custom_css();
[84] Fix | Delete
[85] Fix | Delete
// force sync if the current custom CSS is empty
[86] Fix | Delete
if ( 'yes' === $css_synced && '' !== $wp_custom_css ) {
[87] Fix | Delete
return;
[88] Fix | Delete
}
[89] Fix | Delete
[90] Fix | Delete
// ePanel is completely synced with Customizer
[91] Fix | Delete
if ( $wp_custom_css === $legacy_custom_css || false !== strpos( $wp_custom_css, $legacy_custom_css ) ) {
[92] Fix | Delete
set_theme_mod( 'et_pb_css_synced', 'yes' );
[93] Fix | Delete
return;
[94] Fix | Delete
}
[95] Fix | Delete
[96] Fix | Delete
// merge custom css from WP customizer with ePanel custom css
[97] Fix | Delete
$updated_custom_css = $legacy_custom_css . ' ' . $wp_custom_css;
[98] Fix | Delete
[99] Fix | Delete
$updated_status = wp_update_custom_css_post( $updated_custom_css );
[100] Fix | Delete
[101] Fix | Delete
// set theme mod in case of success
[102] Fix | Delete
if ( is_object( $updated_status ) && ! empty( $updated_status ) ) {
[103] Fix | Delete
set_theme_mod( 'et_pb_css_synced', 'yes' );
[104] Fix | Delete
}
[105] Fix | Delete
}
[106] Fix | Delete
}
[107] Fix | Delete
add_action( 'init', 'et_sync_custom_css_options' );
[108] Fix | Delete
[109] Fix | Delete
/**
[110] Fix | Delete
* sync custom CSS from WP custom CSS option introduced in WP 4.7 with theme options for backward compatibility
[111] Fix | Delete
* it should be removed after a few WP major updates when we fully migrate to WP custom CSS system
[112] Fix | Delete
*/
[113] Fix | Delete
if ( ! function_exists( 'et_back_sync_custom_css_options' ) ) {
[114] Fix | Delete
function et_back_sync_custom_css_options( $data ) {
[115] Fix | Delete
global $shortname;
[116] Fix | Delete
[117] Fix | Delete
if ( ! empty( $data ) && isset( $data['css'] ) ) {
[118] Fix | Delete
et_update_option( "{$shortname}_custom_css", $data['css'] );
[119] Fix | Delete
}
[120] Fix | Delete
[121] Fix | Delete
return $data;
[122] Fix | Delete
}
[123] Fix | Delete
}
[124] Fix | Delete
[125] Fix | Delete
add_filter( 'update_custom_css_data', 'et_back_sync_custom_css_options' );
[126] Fix | Delete
[127] Fix | Delete
if ( ! function_exists( 'et_update_custom_css_data_cb' ) ):
[128] Fix | Delete
function et_update_custom_css_data_cb( $data ) {
[129] Fix | Delete
[130] Fix | Delete
ET_Core_PageResource::remove_static_resources( 'all', 'all' );
[131] Fix | Delete
[132] Fix | Delete
return $data;
[133] Fix | Delete
}
[134] Fix | Delete
add_filter( 'update_custom_css_data', 'et_update_custom_css_data_cb' );
[135] Fix | Delete
endif;
[136] Fix | Delete
[137] Fix | Delete
if ( ! function_exists( 'et_epanel_handle_custom_css_output' ) ):
[138] Fix | Delete
function et_epanel_handle_custom_css_output( $css, $stylesheet ) {
[139] Fix | Delete
global $wp_current_filter, $shortname;
[140] Fix | Delete
[141] Fix | Delete
/** @see ET_Core_SupportCenter::toggle_safe_mode */
[142] Fix | Delete
if ( et_core_is_safe_mode_active() ) {
[143] Fix | Delete
return $css;
[144] Fix | Delete
}
[145] Fix | Delete
[146] Fix | Delete
if ( ! $css || ! in_array( 'wp_head', $wp_current_filter ) || is_admin() && ! is_customize_preview() ) {
[147] Fix | Delete
return $css;
[148] Fix | Delete
}
[149] Fix | Delete
[150] Fix | Delete
$post_id = et_core_page_resource_get_the_ID();
[151] Fix | Delete
$is_preview = is_preview() || isset( $_GET['et_pb_preview_nonce'] ) || is_customize_preview(); // phpcs:ignore WordPress.Security.NonceVerification.NoNonceVerification
[152] Fix | Delete
$is_singular = et_core_page_resource_is_singular();
[153] Fix | Delete
[154] Fix | Delete
$disabled_global = 'off' === et_get_option( 'et_pb_static_css_file', 'on' );
[155] Fix | Delete
$disabled_post = $disabled_global || ( $is_singular && 'off' === get_post_meta( $post_id, '_et_pb_static_css_file', true ) );
[156] Fix | Delete
[157] Fix | Delete
$forced_inline = $is_preview || $disabled_global || $disabled_post || post_password_required();
[158] Fix | Delete
$builder_in_footer = 'on' === et_get_option( 'et_pb_css_in_footer', 'off' );
[159] Fix | Delete
[160] Fix | Delete
$unified_styles = $is_singular && ! $forced_inline && ! $builder_in_footer && et_core_is_builder_used_on_current_request();
[161] Fix | Delete
$resource_owner = $unified_styles ? 'core' : $shortname;
[162] Fix | Delete
$resource_slug = $unified_styles ? 'unified' : 'customizer';
[163] Fix | Delete
[164] Fix | Delete
if ( $is_preview ) {
[165] Fix | Delete
// Don't let previews cause existing saved static css files to be modified.
[166] Fix | Delete
$resource_slug .= '-preview';
[167] Fix | Delete
}
[168] Fix | Delete
[169] Fix | Delete
if ( function_exists( 'et_fb_is_enabled' ) && et_fb_is_enabled() ) {
[170] Fix | Delete
$resource_slug .= '-vb';
[171] Fix | Delete
}
[172] Fix | Delete
[173] Fix | Delete
if ( ! $unified_styles ) {
[174] Fix | Delete
$post_id = 'global';
[175] Fix | Delete
}
[176] Fix | Delete
[177] Fix | Delete
$styles_manager = et_core_page_resource_get( $resource_owner, $resource_slug, $post_id, 30 );
[178] Fix | Delete
[179] Fix | Delete
if ( $styles_manager->forced_inline || ! $styles_manager->has_file() ) {
[180] Fix | Delete
$styles_manager->set_data( $css, 30 );
[181] Fix | Delete
}
[182] Fix | Delete
[183] Fix | Delete
return ''; // We're handling the custom CSS output ourselves.
[184] Fix | Delete
}
[185] Fix | Delete
add_filter( 'wp_get_custom_css', 'et_epanel_handle_custom_css_output', 999, 2 );
[186] Fix | Delete
endif;
[187] Fix | Delete
[188] Fix | Delete
/**
[189] Fix | Delete
* Gets option value from the single theme option, stored as an array in the database
[190] Fix | Delete
* if all options stored in one row.
[191] Fix | Delete
* Stores the serialized array with theme options into the global variable on the first function run on the page.
[192] Fix | Delete
*
[193] Fix | Delete
* If options are stored as separate rows in database, it simply uses get_option() function.
[194] Fix | Delete
*
[195] Fix | Delete
* @param string $option_name Theme option name.
[196] Fix | Delete
* @param string $default_value Default value that should be set if the theme option isn't set.
[197] Fix | Delete
* @param string $used_for_object "Object" name that should be translated into corresponding "object" if WPML is activated.
[198] Fix | Delete
* @return mixed Theme option value or false if not found.
[199] Fix | Delete
*/
[200] Fix | Delete
if ( ! function_exists( 'et_get_option' ) ) {
[201] Fix | Delete
[202] Fix | Delete
function et_get_option( $option_name, $default_value = '', $used_for_object = '', $force_default_value = false, $is_global_setting = false, $global_setting_main_name = '', $global_setting_sub_name = '' ){
[203] Fix | Delete
global $et_theme_options, $shortname;
[204] Fix | Delete
[205] Fix | Delete
$et_one_row_option_name = '';
[206] Fix | Delete
[207] Fix | Delete
if ( $is_global_setting ) {
[208] Fix | Delete
$option_value = '';
[209] Fix | Delete
[210] Fix | Delete
$et_global_setting = get_option( $global_setting_main_name );
[211] Fix | Delete
[212] Fix | Delete
if ( false !== $et_global_setting && isset( $et_global_setting[ $global_setting_sub_name ] ) ) {
[213] Fix | Delete
$option_value = $et_global_setting[ $global_setting_sub_name ];
[214] Fix | Delete
}
[215] Fix | Delete
} else if ( et_options_stored_in_one_row() ) {
[216] Fix | Delete
$et_theme_options_name = 'et_' . $shortname;
[217] Fix | Delete
[218] Fix | Delete
if ( ! isset( $et_theme_options ) || is_customize_preview() ) {
[219] Fix | Delete
$et_theme_options = get_option( $et_theme_options_name );
[220] Fix | Delete
}
[221] Fix | Delete
$option_value = isset( $et_theme_options[$option_name] ) ? $et_theme_options[$option_name] : false;
[222] Fix | Delete
[223] Fix | Delete
$et_one_row_option_name = $et_theme_options_name . '_' . $option_name;
[224] Fix | Delete
} else {
[225] Fix | Delete
$option_value = $force_default_value ? get_option( $option_name, $default_value ) : get_option( $option_name );
[226] Fix | Delete
}
[227] Fix | Delete
[228] Fix | Delete
// option value might be equal to false, so check if the option is not set in the database
[229] Fix | Delete
if ( et_options_stored_in_one_row() && ! isset( $et_theme_options[ $option_name ] ) && ( ! empty( $default_value ) || $force_default_value ) ) {
[230] Fix | Delete
$option_value = $default_value;
[231] Fix | Delete
}
[232] Fix | Delete
[233] Fix | Delete
if ( ! empty( $used_for_object ) && in_array( $used_for_object, array( 'page', 'category' ) ) && is_array( $option_value ) )
[234] Fix | Delete
$option_value = et_generate_wpml_ids( $option_value, $used_for_object );
[235] Fix | Delete
[236] Fix | Delete
if ( ! empty( $et_one_row_option_name ) ) {
[237] Fix | Delete
$option_value = apply_filters( 'et_get_option_' . $et_one_row_option_name, $option_value, $et_one_row_option_name );
[238] Fix | Delete
}
[239] Fix | Delete
[240] Fix | Delete
return $option_value;
[241] Fix | Delete
}
[242] Fix | Delete
[243] Fix | Delete
}
[244] Fix | Delete
[245] Fix | Delete
if ( ! function_exists( 'et_update_option' ) ) {
[246] Fix | Delete
[247] Fix | Delete
function et_update_option( $option_name, $new_value, $is_new_global_setting = false, $global_setting_main_name = '', $global_setting_sub_name = '' ){
[248] Fix | Delete
global $et_theme_options, $shortname;
[249] Fix | Delete
[250] Fix | Delete
if ( $is_new_global_setting && '' !== $global_setting_main_name && '' !== $global_setting_sub_name ) {
[251] Fix | Delete
$global_setting = get_option( $global_setting_main_name, array() );
[252] Fix | Delete
[253] Fix | Delete
// $global_setting has to be array otherwise setting can't be saved so it needs
[254] Fix | Delete
// to be treated as empty array
[255] Fix | Delete
if ( ! is_array( $global_setting ) ) {
[256] Fix | Delete
$global_setting = array();
[257] Fix | Delete
}
[258] Fix | Delete
[259] Fix | Delete
$global_setting[ $global_setting_sub_name ] = $new_value;
[260] Fix | Delete
[261] Fix | Delete
update_option( $global_setting_main_name, $global_setting );
[262] Fix | Delete
[263] Fix | Delete
} else if ( et_options_stored_in_one_row() ) {
[264] Fix | Delete
$et_theme_options_name = 'et_' . $shortname;
[265] Fix | Delete
[266] Fix | Delete
if ( ! isset( $et_theme_options ) || is_customize_preview() ) {
[267] Fix | Delete
$et_theme_options = get_option( $et_theme_options_name );
[268] Fix | Delete
}
[269] Fix | Delete
$et_theme_options[$option_name] = $new_value;
[270] Fix | Delete
[271] Fix | Delete
update_option( $et_theme_options_name, $et_theme_options );
[272] Fix | Delete
[273] Fix | Delete
} else {
[274] Fix | Delete
update_option( $option_name, $new_value );
[275] Fix | Delete
}
[276] Fix | Delete
}
[277] Fix | Delete
[278] Fix | Delete
}
[279] Fix | Delete
[280] Fix | Delete
if ( ! function_exists( 'et_delete_option' ) ) {
[281] Fix | Delete
[282] Fix | Delete
function et_delete_option( $option_name ){
[283] Fix | Delete
global $et_theme_options, $shortname;
[284] Fix | Delete
[285] Fix | Delete
if ( et_options_stored_in_one_row() ) {
[286] Fix | Delete
$et_theme_options_name = 'et_' . $shortname;
[287] Fix | Delete
[288] Fix | Delete
if ( ! isset( $et_theme_options ) ) $et_theme_options = get_option( $et_theme_options_name );
[289] Fix | Delete
[290] Fix | Delete
unset( $et_theme_options[$option_name] );
[291] Fix | Delete
update_option( $et_theme_options_name, $et_theme_options );
[292] Fix | Delete
} else {
[293] Fix | Delete
delete_option( $option_name );
[294] Fix | Delete
}
[295] Fix | Delete
}
[296] Fix | Delete
[297] Fix | Delete
}
[298] Fix | Delete
[299] Fix | Delete
/*this function allows for the auto-creation of post excerpts*/
[300] Fix | Delete
if ( ! function_exists( 'truncate_post' ) ) {
[301] Fix | Delete
[302] Fix | Delete
function truncate_post( $amount, $echo = true, $post = '', $strip_shortcodes = false ) {
[303] Fix | Delete
global $shortname;
[304] Fix | Delete
[305] Fix | Delete
if ( empty( $post ) ) global $post;
[306] Fix | Delete
[307] Fix | Delete
if ( post_password_required( $post ) ) {
[308] Fix | Delete
$post_excerpt = get_the_password_form();
[309] Fix | Delete
[310] Fix | Delete
if ( $echo ) {
[311] Fix | Delete
echo et_core_intentionally_unescaped( $post_excerpt, 'html' );
[312] Fix | Delete
return;
[313] Fix | Delete
}
[314] Fix | Delete
[315] Fix | Delete
return $post_excerpt;
[316] Fix | Delete
}
[317] Fix | Delete
[318] Fix | Delete
$post_excerpt = apply_filters( 'the_excerpt', $post->post_excerpt );
[319] Fix | Delete
[320] Fix | Delete
if ( 'on' === et_get_option( $shortname . '_use_excerpt' ) && ! empty( $post_excerpt ) ) {
[321] Fix | Delete
if ( $echo ) {
[322] Fix | Delete
echo et_core_intentionally_unescaped( $post_excerpt, 'html' );
[323] Fix | Delete
} else {
[324] Fix | Delete
return $post_excerpt;
[325] Fix | Delete
}
[326] Fix | Delete
} else {
[327] Fix | Delete
// get the post content
[328] Fix | Delete
$truncate = $post->post_content;
[329] Fix | Delete
[330] Fix | Delete
// remove caption shortcode from the post content
[331] Fix | Delete
$truncate = preg_replace( '@\[caption[^\]]*?\].*?\[\/caption]@si', '', $truncate );
[332] Fix | Delete
[333] Fix | Delete
// remove post nav shortcode from the post content
[334] Fix | Delete
$truncate = preg_replace( '@\[et_pb_post_nav[^\]]*?\].*?\[\/et_pb_post_nav]@si', '', $truncate );
[335] Fix | Delete
[336] Fix | Delete
// Remove audio shortcode from post content to prevent unwanted audio file on the excerpt
[337] Fix | Delete
// due to unparsed audio shortcode
[338] Fix | Delete
$truncate = preg_replace( '@\[audio[^\]]*?\].*?\[\/audio]@si', '', $truncate );
[339] Fix | Delete
[340] Fix | Delete
// Remove embed shortcode from post content
[341] Fix | Delete
$truncate = preg_replace( '@\[embed[^\]]*?\].*?\[\/embed]@si', '', $truncate );
[342] Fix | Delete
[343] Fix | Delete
// Remove script and style tags from the post content
[344] Fix | Delete
$truncate = wp_strip_all_tags( $truncate );
[345] Fix | Delete
[346] Fix | Delete
if ( $strip_shortcodes ) {
[347] Fix | Delete
$truncate = et_strip_shortcodes( $truncate );
[348] Fix | Delete
$truncate = et_builder_strip_dynamic_content( $truncate );
[349] Fix | Delete
} else {
[350] Fix | Delete
// Check if content should be overridden with a custom value.
[351] Fix | Delete
$custom = apply_filters( 'et_truncate_post_use_custom_content', false, $truncate, $post );
[352] Fix | Delete
// apply content filters
[353] Fix | Delete
$truncate = false === $custom ? apply_filters( 'the_content', $truncate ) : $custom;
[354] Fix | Delete
}
[355] Fix | Delete
[356] Fix | Delete
/**
[357] Fix | Delete
* Filter automatically generated post excerpt before it gets truncated.
[358] Fix | Delete
*
[359] Fix | Delete
* @since 3.17.2
[360] Fix | Delete
*
[361] Fix | Delete
* @param string $excerpt
[362] Fix | Delete
* @param integer $post_id
[363] Fix | Delete
*/
[364] Fix | Delete
$truncate = apply_filters( 'et_truncate_post', $truncate, $post->ID );
[365] Fix | Delete
[366] Fix | Delete
// decide if we need to append dots at the end of the string
[367] Fix | Delete
if ( strlen( $truncate ) <= $amount ) {
[368] Fix | Delete
$echo_out = '';
[369] Fix | Delete
} else {
[370] Fix | Delete
$echo_out = '...';
[371] Fix | Delete
// $amount = $amount - 3;
[372] Fix | Delete
}
[373] Fix | Delete
[374] Fix | Delete
// trim text to a certain number of characters, also remove spaces from the end of a string ( space counts as a character )
[375] Fix | Delete
$truncate = rtrim( et_wp_trim_words( $truncate, $amount, '' ) );
[376] Fix | Delete
[377] Fix | Delete
// remove the last word to make sure we display all words correctly
[378] Fix | Delete
if ( ! empty( $echo_out ) ) {
[379] Fix | Delete
$new_words_array = (array) explode( ' ', $truncate );
[380] Fix | Delete
array_pop( $new_words_array );
[381] Fix | Delete
[382] Fix | Delete
$truncate = implode( ' ', $new_words_array );
[383] Fix | Delete
[384] Fix | Delete
// append dots to the end of the string
[385] Fix | Delete
$truncate .= $echo_out;
[386] Fix | Delete
}
[387] Fix | Delete
[388] Fix | Delete
if ( $echo ) {
[389] Fix | Delete
echo et_core_intentionally_unescaped( $truncate, 'html' );
[390] Fix | Delete
} else {
[391] Fix | Delete
return $truncate;
[392] Fix | Delete
}
[393] Fix | Delete
};
[394] Fix | Delete
}
[395] Fix | Delete
[396] Fix | Delete
}
[397] Fix | Delete
[398] Fix | Delete
if ( ! function_exists( 'et_wp_trim_words' ) ) {
[399] Fix | Delete
[400] Fix | Delete
function et_wp_trim_words( $text, $num_words = 55, $more = null ) {
[401] Fix | Delete
if ( null === $more )
[402] Fix | Delete
$more = esc_html__( '&hellip;' );
[403] Fix | Delete
// Completely remove icons so that unicode hex entities representing the icons do not get included in words.
[404] Fix | Delete
$text = preg_replace( '/<span class="et-pb-icon .*<\/span>/', '', $text );
[405] Fix | Delete
$text = wp_strip_all_tags( $text );
[406] Fix | Delete
[407] Fix | Delete
$text = trim( preg_replace( "/[\n\r\t ]+/", ' ', $text ), ' ' );
[408] Fix | Delete
preg_match_all( '/./u', $text, $words_array );
[409] Fix | Delete
$words_array = array_slice( $words_array[0], 0, $num_words + 1 );
[410] Fix | Delete
$sep = '';
[411] Fix | Delete
[412] Fix | Delete
if ( count( $words_array ) > $num_words ) {
[413] Fix | Delete
array_pop( $words_array );
[414] Fix | Delete
$text = implode( $sep, $words_array );
[415] Fix | Delete
$text = $text . $more;
[416] Fix | Delete
} else {
[417] Fix | Delete
$text = implode( $sep, $words_array );
[418] Fix | Delete
}
[419] Fix | Delete
[420] Fix | Delete
return $text;
[421] Fix | Delete
}
[422] Fix | Delete
[423] Fix | Delete
}
[424] Fix | Delete
[425] Fix | Delete
/*this function truncates titles to create preview excerpts*/
[426] Fix | Delete
if ( ! function_exists( 'truncate_title' ) ) {
[427] Fix | Delete
[428] Fix | Delete
function truncate_title( $amount, $echo = true, $post = '' ) {
[429] Fix | Delete
if ( empty( $post ) ) $truncate = get_the_title();
[430] Fix | Delete
else $truncate = $post->post_title;
[431] Fix | Delete
[432] Fix | Delete
if ( strlen( $truncate ) <= $amount ) $echo_out = '';
[433] Fix | Delete
else $echo_out = '...';
[434] Fix | Delete
[435] Fix | Delete
$truncate = et_wp_trim_words( $truncate, $amount, '' );
[436] Fix | Delete
[437] Fix | Delete
if ( ! empty( $echo_out ) ) $truncate .= $echo_out;
[438] Fix | Delete
[439] Fix | Delete
if ( $echo )
[440] Fix | Delete
echo et_core_intentionally_unescaped( $truncate, 'html' );
[441] Fix | Delete
else
[442] Fix | Delete
return $truncate;
[443] Fix | Delete
}
[444] Fix | Delete
[445] Fix | Delete
}
[446] Fix | Delete
[447] Fix | Delete
[448] Fix | Delete
/*this function allows users to use the first image in their post as their thumbnail*/
[449] Fix | Delete
if ( ! function_exists( 'et_first_image' ) ) {
[450] Fix | Delete
[451] Fix | Delete
function et_first_image() {
[452] Fix | Delete
global $post;
[453] Fix | Delete
$img = '';
[454] Fix | Delete
[455] Fix | Delete
if ( empty( $post->ID ) ) {
[456] Fix | Delete
return $img;
[457] Fix | Delete
}
[458] Fix | Delete
[459] Fix | Delete
$unprocessed_content = $post->post_content;
[460] Fix | Delete
[461] Fix | Delete
// truncate Post based shortcodes if Divi Builder enabled to avoid infinite loops
[462] Fix | Delete
if ( function_exists( 'et_strip_shortcodes' ) ) {
[463] Fix | Delete
$unprocessed_content = et_strip_shortcodes( $post->post_content, true );
[464] Fix | Delete
}
[465] Fix | Delete
[466] Fix | Delete
// Check if content should be overridden with a custom value.
[467] Fix | Delete
$custom = apply_filters( 'et_first_image_use_custom_content', false, $unprocessed_content, $post );
[468] Fix | Delete
// apply the_content filter to execute all shortcodes and get the correct image from the processed content
[469] Fix | Delete
$processed_content = false === $custom ? apply_filters( 'the_content', $unprocessed_content ) : $custom;
[470] Fix | Delete
[471] Fix | Delete
$output = preg_match_all( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $processed_content, $matches );
[472] Fix | Delete
if ( isset( $matches[1][0] ) ) $img = $matches[1][0];
[473] Fix | Delete
[474] Fix | Delete
return trim( $img );
[475] Fix | Delete
}
[476] Fix | Delete
[477] Fix | Delete
}
[478] Fix | Delete
[479] Fix | Delete
[480] Fix | Delete
/* this function gets thumbnail from Post Thumbnail or Custom field or First post image */
[481] Fix | Delete
if ( ! function_exists( 'get_thumbnail' ) ) {
[482] Fix | Delete
[483] Fix | Delete
function get_thumbnail($width=100, $height=100, $class='', $alttext='', $titletext='', $fullpath=false, $custom_field='', $post='') {
[484] Fix | Delete
if ( empty( $post ) ) global $post;
[485] Fix | Delete
global $shortname;
[486] Fix | Delete
[487] Fix | Delete
$thumb_array['thumb'] = '';
[488] Fix | Delete
$thumb_array['use_timthumb'] = true;
[489] Fix | Delete
if ($fullpath) $thumb_array['fullpath'] = ''; //full image url for lightbox
[490] Fix | Delete
[491] Fix | Delete
$new_method = true;
[492] Fix | Delete
[493] Fix | Delete
if ( has_post_thumbnail( $post->ID ) ) {
[494] Fix | Delete
$thumb_array['use_timthumb'] = false;
[495] Fix | Delete
[496] Fix | Delete
$et_fullpath = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' );
[497] Fix | Delete
[498] Fix | Delete
if ( is_array( $et_fullpath ) ) {
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function