: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
$image_alignments = array(
'left' => 'auto auto auto 0',
'right' => 'auto 0 auto auto',
foreach ( $image_alignment_values as $breakpoint => $alignment ) {
$image_alignment_values[ $breakpoint ] = et_()->array_get(
et_pb_responsive_options()->generate_responsive_css(
'%%order_class%% .et_pb_title_featured_container',
ET_Builder_Element::set_style( $render_slug, array(
'selector' => '%%order_class%% .et_pb_image_wrap',
'declaration' => 'width: auto;',
if ( $multi_view->has_value( 'title', 'on' ) ) {
if ( is_et_pb_preview() && isset( $_POST['post_title'] ) && wp_verify_nonce( $_POST['et_pb_preview_nonce'], 'et_pb_preview_nonce' ) ) {
$post_title = sanitize_text_field( wp_unslash( $_POST['post_title'] ) );
// Unescaped for backwards compat reasons.
$post_title = et_core_intentionally_unescaped( et_builder_get_current_title(), 'html' );
$output .= $multi_view->render_element( array(
'tag' => et_pb_process_header_level( $header_level, 'h1' ),
'content' => $post_title,
'class' => 'entry-title',
if ( $post_id && $multi_view->has_value( 'meta', 'on' ) ) {
foreach ( $post_metas as $mode => $post_meta ) {
foreach ( $post_meta_keys as $post_meta_key ) {
if ( $multi_view->has_value( $post_meta_key, 'on', $mode, true ) ) {
$post_meta[ $post_meta_key ] = $post_meta_key;
$post_metas[ $mode ] = implode( ',', $post_meta );
$multi_view->set_custom_prop( 'post_metas', $post_metas );
$output .= $multi_view->render_element( array(
'content' => '{{post_metas}}',
'class' => 'et_pb_title_meta_container',
if ( 'on' === $text_background ) {
// Text Background Color.
et_pb_responsive_options()->generate_responsive_css( $text_bg_colors, '%%order_class%% .et_pb_title_container', 'background-color', $render_slug, '; padding: 1em 1.5em;', 'color' );
if ( et_pb_hover_options()->is_enabled( 'text_bg_color', $this->props ) ) {
ET_Builder_Element::set_style( $render_slug, array(
'selector' => '%%order_class%%:hover .et_pb_title_container',
'declaration' => sprintf(
'background-color: %1$s; padding: 1em 1.5em;',
esc_html( et_pb_hover_options()->get_value( 'text_bg_color', $this->props ) )
$video_background = $this->video_background();
$background_layout = 'dark' === $text_color ? 'light' : 'dark';
$data_background_layout = '';
$data_background_layout_hover = '';
if ( et_pb_hover_options()->is_enabled( 'text_color', $this->props ) && !empty( $text_color_hover ) && $text_color !== $text_color_hover ) {
$data_background_layout = sprintf( ' data-background-layout="%1$s"', esc_attr( $text_color_hover ) );
$data_background_layout_hover = sprintf( ' data-background-layout-hover="%1$s"', esc_attr( $text_color ) );
$this->add_classname( array(
"et_pb_bg_layout_{$background_layout}",
$this->get_text_orientation_classname(),
if ( 'on' === $multi_view->get_value( 'featured_image' ) && 'background' === $featured_placement ) {
$this->add_classname( 'et_pb_featured_bg' );
$muti_view_data_attr = $multi_view->render_attrs( array(
'et_pb_featured_bg' => array(
'featured_image' => 'on',
'featured_placement' => 'background',
'<div%3$s class="%2$s" %8$s %9$s %10$s>
<div class="et_pb_title_container">
$this->module_classname( $render_slug ),
$parallax_image_background,
'above' === $featured_placement ? $featured_image_output : '', // #5
'below' === $featured_placement ? $featured_image_output : '',
et_core_esc_previously( $data_background_layout ),
et_core_esc_previously( $data_background_layout_hover ),
et_core_esc_previously( $muti_view_data_attr ) // #10
* Filter multi view value.
* @see ET_Builder_Module_Helper_MultiViewOptions::filter_value
* @param mixed $raw_value Props raw value.
* @type string $context Context param: content, attrs, visibility, classes.
* @type string $name Module options props name.
* @type string $mode Current data mode: desktop, hover, tablet, phone.
* @type string $attr_key Attribute key for attrs context data. Example: src, class, etc.
* @type string $attr_sub_key Attribute sub key that availabe when passing attrs value as array such as styes. Example: padding-top, margin-botton, etc.
public function multi_view_filter_value( $raw_value, $args ) {
$name = isset( $args['name'] ) ? $args['name'] : '';
$context = isset( $args['context'] ) ? $args['context'] : '';
if ( $raw_value && 'post_metas' === $name && 'content' === $context ) {
foreach ( explode( ',', $raw_value ) as $post_meta ) {
if ( 'categories' === $post_meta && ! is_singular( 'post' ) ) {
$post_metas[] = $post_meta;
$raw_value = et_pb_postinfo_meta( $post_metas, $this->props['date_format'], esc_html__( '0 comments', 'et_builder' ), esc_html__( '1 comment', 'et_builder' ), '% ' . esc_html__( 'comments', 'et_builder' ) );
new ET_Builder_Module_Post_Title;