: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
* Fires after theme builder template footer is output.
* Example use case is to add closing wrapping html tags for the footer and/or the entire page.
* @param integer $layout_id The layout id or 0.
* @param bool $layout_enabled
* @param integer $template_id The template id or 0.
do_action( 'et_theme_builder_template_after_footer', $layout_id, $layout_enabled, $template_id );
et_theme_builder_frontend_render_common_wrappers( 'common', false );
* Fires after theme builder page wrappers are output.
* Example use case is to add closing wrapping html tags for the entire page.
* @param integer $layout_id The layout id or 0.
* @param bool $layout_enabled
* @param integer $template_id The template id or 0.
do_action( 'et_theme_builder_template_after_page_wrappers', $layout_id, $layout_enabled, $template_id );
* Open or close common builder wrappers (e.g. #et-boc) in order to avoid having triple wrappers - one for every layout.
function et_theme_builder_frontend_render_common_wrappers( $area, $open ) {
// Open wrappers only if there are no other open wrappers already.
echo et_builder_get_builder_content_opening_wrapper();
if ( '' === $wrapper || $area !== $wrapper ) {
// Do not close wrappers if the opener does not match the current area.
echo et_builder_get_builder_content_closing_wrapper();
* Get the html representing the post content for the current post.
function et_theme_builder_frontend_render_post_content() {
static $__prevent_recursion = false;
if ( ET_Builder_Element::get_theme_builder_layout_type() !== ET_THEME_BUILDER_BODY_LAYOUT_POST_TYPE ) {
// Prevent usage on non-body layouts.
// Do not output anything on non-singular pages.
$main_query_post = ET_Post_Stack::get_main_post();
if ( ! $main_query_post ) {
// Bail if there is no current post.
if ( true === $__prevent_recursion ) {
// Failsafe just in case.
$__prevent_recursion = true;
ET_Post_Stack::replace( $main_query_post );
ET_Builder_Element::begin_theme_builder_layout( get_the_ID() );
do_action_ref_array( 'loop_start', array( &$wp_query ) );
do_action_ref_array( 'loop_end', array( &$wp_query ) );
ET_Builder_Element::end_theme_builder_layout();
ET_Post_Stack::restore();
$__prevent_recursion = false;