* @param WP_Post $post
*
* @return string
*/
if ( ! function_exists( 'et_divi_truncate_post_use_custom_content' ) ) :
function et_divi_truncate_post_use_custom_content( $custom, $content, $post ) {
// If post doesn't use builder, no need to compute a custom value
if ( ! et_pb_is_pagebuilder_used( $post->ID ) ) {
return false;
}
$cached = get_post_meta( $post->ID, '_et_pb_truncate_post', true );
if ( $cached ) {
$cached_date = get_post_meta( $post->ID, '_et_pb_truncate_post_date', true );
$cached_date = $cached_date ? $cached_date : get_post_field( 'post_modified', $post->ID );
$global_modules = array();
$shortcodes = array();
preg_match_all( '/'. get_shortcode_regex() .'/s', $content, $shortcodes );
if ( is_array( $shortcodes ) && isset( $shortcodes[3] ) ) {
foreach ( $shortcodes[3] as $raw_attributes ) {
$attributes = shortcode_parse_atts( $raw_attributes );
$attributes = is_array( $attributes ) ? $attributes : array();
$global_id = (int) et_()->array_get( $attributes, 'global_module', 0 );
if ( $global_id > 0 ) {
$global_modules[] = $global_id;
}
}
}
foreach ( $global_modules as $module_post_id ) {
// Dates are using the Y-m-d H:i:s format so we can compare them as strings for simplicity.
if ( strcmp( get_post_field( 'post_modified', $module_post_id ), $cached_date ) > 0 ) {
// A global module used in the post has been updated more recently than
// the post's cached excerpt so we need to invalidate the cache.
$cached = '';
break;
}
}
}
if ( $cached ) {
return $cached;
}
$custom = apply_filters( 'the_content', $content );
// Save the result because expensive to compute.
update_post_meta( $post->ID, '_et_pb_truncate_post', $custom );
update_post_meta( $post->ID, '_et_pb_truncate_post_date', date( 'Y-m-d H:i:s' ) );
return $custom;
}
endif;
add_filter( 'et_truncate_post_use_custom_content', 'et_divi_truncate_post_use_custom_content', 10, 3 );
/**
* Caches expensive generation of et_first_image
*
* @since 3.17.3
*
* @param bool $custom
* @param string $content
* @param WP_Post $post
*
* @return string
*/
if ( ! function_exists( 'et_divi_first_image_use_custom_content' ) ) :
function et_divi_first_image_use_custom_content( $custom, $content, $post ) {
// If post doesn't use builder, no need to compute a custom value
if ( ! et_pb_is_pagebuilder_used( $post->ID ) ) {
return false;
}
$cached = get_post_meta( $post->ID, '_et_pb_first_image', true );
if ( $cached ) {
return $cached;
}
Comprehensive Service When You Need It
RCS Group of Companies is proud to offer certified professional services in all areas of project management.
Our team is fully equipped to partner closely with you for comprehensive project management, administrative support, and technological problem solving to keep your project on track.