???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ????????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? ??????????????????????????????????????? $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ PNG \x49\x44\x41\x54?\x89\x50 \x4E\x47\x0D\x0A\x1A\x0A JFIF    ?? C    !"$"$?? C  ?? p " ??     ??   ?   ???? (% aA*?XYD?(J??E RE,P XYae?)(E 2 B R BQ X?)X ? @ adadasdasdasasdasdas .....................................................................................................................................?????????????????????? ??? ???????????????????????????????????????............................... JFIF    ?? C    !"$"$?? C  ?? p " ??     ??   ?   ???? (% aA*?XYD?(J??E RE,P XYae?)(E 2 B R BQ X?)X ? @ adadasdasdasasdasdas ..................................................................................................................................... ???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ????????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? ??????????????????????????????????????? PNG \x49\x44\x41\x54?\x89\x50 \x4E\x47\x0D\x0A\x1A\x0A JFIF    ?? C    !"$"$?? C  ?? p " ??     ??   ?   ???? (% aA*?XYD?(J??E RE,P XYae?)(E 2 B R BQ X?)X ? @ adadasdasdasasdasdas .....................................................................................................................................?????????????????????? ??? ???????????????????????????????????????............................... JFIF    ?? C    !"$"$?? C  ?? p " ??     ??   ?   ???? (% aA*?XYD?(J??E RE,P XYae?)(E 2 B R BQ X?)X ? @ adadasdasdasasdasdas .....................................................................................................................................???????????????????????????????? ??????????????????????????????? ??????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
Warning: Undefined variable $auth in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 695

Warning: Trying to access array offset on value of type null in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 695

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 332

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 333

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 334

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 335

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 336

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 337
PKN\F duotone.phpnu[register( 'duotone', array( 'register_attribute' => array( 'WP_Duotone', 'register_duotone_support' ), ) ); // Add classnames to blocks using duotone support. add_filter( 'render_block', array( 'WP_Duotone', 'render_duotone_support' ), 10, 3 ); add_filter( 'render_block_core/image', array( 'WP_Duotone', 'restore_image_outer_container' ), 10, 1 ); // Enqueue styles. // Block styles (core-block-supports-inline-css) before the style engine (wp_enqueue_stored_styles). // Global styles (global-styles-inline-css) after the other global styles (wp_enqueue_global_styles). add_action( 'wp_enqueue_scripts', array( 'WP_Duotone', 'output_block_styles' ), 9 ); add_action( 'wp_enqueue_scripts', array( 'WP_Duotone', 'output_global_styles' ), 11 ); // Add SVG filters to the footer. Also, for classic themes, output block styles (core-block-supports-inline-css). add_action( 'wp_footer', array( 'WP_Duotone', 'output_footer_assets' ), 10 ); // Add styles and SVGs for use in the editor via the EditorStyles component. add_filter( 'block_editor_settings_all', array( 'WP_Duotone', 'add_editor_settings' ), 10 ); // Migrate the old experimental duotone support flag. add_filter( 'block_type_metadata_settings', array( 'WP_Duotone', 'migrate_experimental_duotone_support_flag' ), 10, 2 ); PKN\attributes ) { $block_type->attributes = array(); } if ( block_has_support( $block_type, '__experimentalBorder' ) && ! array_key_exists( 'style', $block_type->attributes ) ) { $block_type->attributes['style'] = array( 'type' => 'object', ); } if ( wp_has_border_feature_support( $block_type, 'color' ) && ! array_key_exists( 'borderColor', $block_type->attributes ) ) { $block_type->attributes['borderColor'] = array( 'type' => 'string', ); } } /** * Adds CSS classes and inline styles for border styles to the incoming * attributes array. This will be applied to the block markup in the front-end. * * @since 5.8.0 * @since 6.1.0 Implemented the style engine to generate CSS and classnames. * @access private * * @param WP_Block_Type $block_type Block type. * @param array $block_attributes Block attributes. * @return array Border CSS classes and inline styles. */ function wp_apply_border_support( $block_type, $block_attributes ) { if ( wp_should_skip_block_supports_serialization( $block_type, 'border' ) ) { return array(); } $border_block_styles = array(); $has_border_color_support = wp_has_border_feature_support( $block_type, 'color' ); $has_border_width_support = wp_has_border_feature_support( $block_type, 'width' ); // Border radius. if ( wp_has_border_feature_support( $block_type, 'radius' ) && isset( $block_attributes['style']['border']['radius'] ) && ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'radius' ) ) { $border_radius = $block_attributes['style']['border']['radius']; if ( is_numeric( $border_radius ) ) { $border_radius .= 'px'; } $border_block_styles['radius'] = $border_radius; } // Border style. if ( wp_has_border_feature_support( $block_type, 'style' ) && isset( $block_attributes['style']['border']['style'] ) && ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'style' ) ) { $border_block_styles['style'] = $block_attributes['style']['border']['style']; } // Border width. if ( $has_border_width_support && isset( $block_attributes['style']['border']['width'] ) && ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'width' ) ) { $border_width = $block_attributes['style']['border']['width']; // This check handles original unitless implementation. if ( is_numeric( $border_width ) ) { $border_width .= 'px'; } $border_block_styles['width'] = $border_width; } // Border color. if ( $has_border_color_support && ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'color' ) ) { $preset_border_color = array_key_exists( 'borderColor', $block_attributes ) ? "var:preset|color|{$block_attributes['borderColor']}" : null; $custom_border_color = $block_attributes['style']['border']['color'] ?? null; $border_block_styles['color'] = $preset_border_color ? $preset_border_color : $custom_border_color; } // Generates styles for individual border sides. if ( $has_border_color_support || $has_border_width_support ) { foreach ( array( 'top', 'right', 'bottom', 'left' ) as $side ) { $border = $block_attributes['style']['border'][ $side ] ?? null; $border_side_values = array( 'width' => isset( $border['width'] ) && ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'width' ) ? $border['width'] : null, 'color' => isset( $border['color'] ) && ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'color' ) ? $border['color'] : null, 'style' => isset( $border['style'] ) && ! wp_should_skip_block_supports_serialization( $block_type, '__experimentalBorder', 'style' ) ? $border['style'] : null, ); $border_block_styles[ $side ] = $border_side_values; } } // Collect classes and styles. $attributes = array(); $styles = wp_style_engine_get_styles( array( 'border' => $border_block_styles ) ); if ( ! empty( $styles['classnames'] ) ) { $attributes['class'] = $styles['classnames']; } if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } /** * Checks whether the current block type supports the border feature requested. * * If the `__experimentalBorder` support flag is a boolean `true` all border * support features are available. Otherwise, the specific feature's support * flag nested under `experimentalBorder` must be enabled for the feature * to be opted into. * * @since 5.8.0 * @access private * * @param WP_Block_Type $block_type Block type to check for support. * @param string $feature Name of the feature to check support for. * @param mixed $default_value Fallback value for feature support, defaults to false. * @return bool Whether the feature is supported. */ function wp_has_border_feature_support( $block_type, $feature, $default_value = false ) { // Check if all border support features have been opted into via `"__experimentalBorder": true`. if ( $block_type instanceof WP_Block_Type ) { $block_type_supports_border = $block_type->supports['__experimentalBorder'] ?? $default_value; if ( true === $block_type_supports_border ) { return true; } } // Check if the specific feature has been opted into individually // via nested flag under `__experimentalBorder`. return block_has_support( $block_type, array( '__experimentalBorder', $feature ), $default_value ); } // Register the block support. WP_Block_Supports::get_instance()->register( 'border', array( 'register_attribute' => 'wp_register_border_support', 'apply' => 'wp_apply_border_support', ) ); PKN\9nntypography.phpnu[supports['typography'] ?? false; if ( ! $typography_supports ) { return; } $has_font_family_support = $typography_supports['__experimentalFontFamily'] ?? false; $has_font_size_support = $typography_supports['fontSize'] ?? false; $has_font_style_support = $typography_supports['__experimentalFontStyle'] ?? false; $has_font_weight_support = $typography_supports['__experimentalFontWeight'] ?? false; $has_letter_spacing_support = $typography_supports['__experimentalLetterSpacing'] ?? false; $has_line_height_support = $typography_supports['lineHeight'] ?? false; $has_text_align_support = $typography_supports['textAlign'] ?? false; $has_text_columns_support = $typography_supports['textColumns'] ?? false; $has_text_decoration_support = $typography_supports['__experimentalTextDecoration'] ?? false; $has_text_transform_support = $typography_supports['__experimentalTextTransform'] ?? false; $has_text_indent_support = $typography_supports['textIndent'] ?? false; $has_writing_mode_support = $typography_supports['__experimentalWritingMode'] ?? false; $has_typography_support = $has_font_family_support || $has_font_size_support || $has_font_style_support || $has_font_weight_support || $has_letter_spacing_support || $has_line_height_support || $has_text_align_support || $has_text_columns_support || $has_text_decoration_support || $has_text_transform_support || $has_text_indent_support || $has_writing_mode_support; if ( ! $block_type->attributes ) { $block_type->attributes = array(); } if ( $has_typography_support && ! array_key_exists( 'style', $block_type->attributes ) ) { $block_type->attributes['style'] = array( 'type' => 'object', ); } if ( $has_font_size_support && ! array_key_exists( 'fontSize', $block_type->attributes ) ) { $block_type->attributes['fontSize'] = array( 'type' => 'string', ); } if ( $has_font_family_support && ! array_key_exists( 'fontFamily', $block_type->attributes ) ) { $block_type->attributes['fontFamily'] = array( 'type' => 'string', ); } } /** * Adds CSS classes and inline styles for typography features such as font sizes * to the incoming attributes array. This will be applied to the block markup in * the front-end. * * @since 5.6.0 * @since 6.1.0 Used the style engine to generate CSS and classnames. * @since 6.3.0 Added support for text-columns. * @since 7.0.0 Added support for text-indent. * @access private * * @param WP_Block_Type $block_type Block type. * @param array $block_attributes Block attributes. * @return array Typography CSS classes and inline styles. */ function wp_apply_typography_support( $block_type, $block_attributes ) { if ( ! ( $block_type instanceof WP_Block_Type ) ) { return array(); } $typography_supports = $block_type->supports['typography'] ?? false; if ( ! $typography_supports ) { return array(); } if ( wp_should_skip_block_supports_serialization( $block_type, 'typography' ) ) { return array(); } $has_font_family_support = $typography_supports['__experimentalFontFamily'] ?? false; $has_font_size_support = $typography_supports['fontSize'] ?? false; $has_font_style_support = $typography_supports['__experimentalFontStyle'] ?? false; $has_font_weight_support = $typography_supports['__experimentalFontWeight'] ?? false; $has_letter_spacing_support = $typography_supports['__experimentalLetterSpacing'] ?? false; $has_line_height_support = $typography_supports['lineHeight'] ?? false; $has_text_align_support = $typography_supports['textAlign'] ?? false; $has_text_columns_support = $typography_supports['textColumns'] ?? false; $has_text_decoration_support = $typography_supports['__experimentalTextDecoration'] ?? false; $has_text_transform_support = $typography_supports['__experimentalTextTransform'] ?? false; $has_text_indent_support = $typography_supports['textIndent'] ?? false; $has_writing_mode_support = $typography_supports['__experimentalWritingMode'] ?? false; // Whether to skip individual block support features. $should_skip_font_size = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'fontSize' ); $should_skip_font_family = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'fontFamily' ); $should_skip_font_style = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'fontStyle' ); $should_skip_font_weight = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'fontWeight' ); $should_skip_line_height = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'lineHeight' ); $should_skip_text_align = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'textAlign' ); $should_skip_text_columns = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'textColumns' ); $should_skip_text_decoration = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'textDecoration' ); $should_skip_text_transform = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'textTransform' ); $should_skip_letter_spacing = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'letterSpacing' ); $should_skip_text_indent = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'textIndent' ); $should_skip_writing_mode = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'writingMode' ); $typography_block_styles = array(); if ( $has_font_size_support && ! $should_skip_font_size ) { $preset_font_size = array_key_exists( 'fontSize', $block_attributes ) ? "var:preset|font-size|{$block_attributes['fontSize']}" : null; $custom_font_size = $block_attributes['style']['typography']['fontSize'] ?? null; $typography_block_styles['fontSize'] = $preset_font_size ? $preset_font_size : wp_get_typography_font_size_value( array( 'size' => $custom_font_size, ) ); } if ( $has_font_family_support && ! $should_skip_font_family ) { $preset_font_family = array_key_exists( 'fontFamily', $block_attributes ) ? "var:preset|font-family|{$block_attributes['fontFamily']}" : null; $custom_font_family = isset( $block_attributes['style']['typography']['fontFamily'] ) ? wp_typography_get_preset_inline_style_value( $block_attributes['style']['typography']['fontFamily'], 'font-family' ) : null; $typography_block_styles['fontFamily'] = $preset_font_family ? $preset_font_family : $custom_font_family; } if ( $has_font_style_support && ! $should_skip_font_style && isset( $block_attributes['style']['typography']['fontStyle'] ) ) { $typography_block_styles['fontStyle'] = wp_typography_get_preset_inline_style_value( $block_attributes['style']['typography']['fontStyle'], 'font-style' ); } if ( $has_font_weight_support && ! $should_skip_font_weight && isset( $block_attributes['style']['typography']['fontWeight'] ) ) { $typography_block_styles['fontWeight'] = wp_typography_get_preset_inline_style_value( $block_attributes['style']['typography']['fontWeight'], 'font-weight' ); } if ( $has_line_height_support && ! $should_skip_line_height ) { $typography_block_styles['lineHeight'] = $block_attributes['style']['typography']['lineHeight'] ?? null; } if ( $has_text_align_support && ! $should_skip_text_align ) { $typography_block_styles['textAlign'] = $block_attributes['style']['typography']['textAlign'] ?? null; } if ( $has_text_columns_support && ! $should_skip_text_columns && isset( $block_attributes['style']['typography']['textColumns'] ) ) { $typography_block_styles['textColumns'] = $block_attributes['style']['typography']['textColumns'] ?? null; } if ( $has_text_decoration_support && ! $should_skip_text_decoration && isset( $block_attributes['style']['typography']['textDecoration'] ) ) { $typography_block_styles['textDecoration'] = wp_typography_get_preset_inline_style_value( $block_attributes['style']['typography']['textDecoration'], 'text-decoration' ); } if ( $has_text_transform_support && ! $should_skip_text_transform && isset( $block_attributes['style']['typography']['textTransform'] ) ) { $typography_block_styles['textTransform'] = wp_typography_get_preset_inline_style_value( $block_attributes['style']['typography']['textTransform'], 'text-transform' ); } if ( $has_letter_spacing_support && ! $should_skip_letter_spacing && isset( $block_attributes['style']['typography']['letterSpacing'] ) ) { $typography_block_styles['letterSpacing'] = wp_typography_get_preset_inline_style_value( $block_attributes['style']['typography']['letterSpacing'], 'letter-spacing' ); } if ( $has_writing_mode_support && ! $should_skip_writing_mode && isset( $block_attributes['style']['typography']['writingMode'] ) ) { $typography_block_styles['writingMode'] = $block_attributes['style']['typography']['writingMode'] ?? null; } if ( $has_text_indent_support && ! $should_skip_text_indent && isset( $block_attributes['style']['typography']['textIndent'] ) ) { $typography_block_styles['textIndent'] = $block_attributes['style']['typography']['textIndent'] ?? null; } $attributes = array(); $classnames = array(); $styles = wp_style_engine_get_styles( array( 'typography' => $typography_block_styles ), array( 'convert_vars_to_classnames' => true ) ); if ( ! empty( $styles['classnames'] ) ) { $classnames[] = $styles['classnames']; } if ( $has_text_align_support && ! $should_skip_text_align && isset( $block_attributes['style']['typography']['textAlign'] ) ) { $classnames[] = 'has-text-align-' . $block_attributes['style']['typography']['textAlign']; } if ( ! empty( $classnames ) ) { $attributes['class'] = implode( ' ', $classnames ); } if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } /** * Generates an inline style value for a typography feature e.g. text decoration, * text transform, and font style. * * Note: This function is for backwards compatibility. * * It is necessary to parse older blocks whose typography styles contain presets. * * It mostly replaces the deprecated `wp_typography_get_css_variable_inline_style()`, * but skips compiling a CSS declaration as the style engine takes over this role. * @link https://github.com/wordpress/gutenberg/pull/27555 * * @since 6.1.0 * * @param string $style_value A raw style value for a single typography feature from a block's style attribute. * @param string $css_property Slug for the CSS property the inline style sets. * @return string A CSS inline style value. */ function wp_typography_get_preset_inline_style_value( $style_value, $css_property ) { // If the style value is not a preset CSS variable go no further. if ( empty( $style_value ) || ! str_contains( $style_value, "var:preset|{$css_property}|" ) ) { return $style_value; } /* * For backwards compatibility. * Presets were removed in WordPress/gutenberg#27555. * A preset CSS variable is the style. * Gets the style value from the string and return CSS style. */ $index_to_splice = strrpos( $style_value, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $style_value, $index_to_splice ) ); // Return the actual CSS inline style value, // e.g. `var(--wp--preset--text-decoration--underline);`. return sprintf( 'var(--wp--preset--%s--%s);', $css_property, $slug ); } /** * Renders typography styles/content to the block wrapper. * * @since 6.1.0 * * @param string $block_content Rendered block content. * @param array $block Block object. * @return string Filtered block content. */ function wp_render_typography_support( $block_content, $block ) { if ( ! empty( $block['attrs']['fitText'] ) && $block['attrs']['fitText'] && ! is_admin() ) { wp_enqueue_script_module( '@wordpress/block-editor/utils/fit-text-frontend' ); // Add Interactivity API directives for fit text to work with client-side navigation. if ( ! empty( $block_content ) ) { $processor = new WP_HTML_Tag_Processor( $block_content ); if ( $processor->next_tag() ) { if ( ! $processor->get_attribute( 'data-wp-interactive' ) ) { $processor->set_attribute( 'data-wp-interactive', true ); } $processor->set_attribute( 'data-wp-context---core-fit-text', 'core/fit-text::{"fontSize":""}' ); $processor->set_attribute( 'data-wp-init---core-fit-text', 'core/fit-text::callbacks.init' ); $processor->set_attribute( 'data-wp-style--font-size', 'core/fit-text::context.fontSize' ); $block_content = $processor->get_updated_html(); } } // fitText supersedes any other typography features return $block_content; } if ( ! isset( $block['attrs']['style']['typography']['fontSize'] ) ) { return $block_content; } $custom_font_size = $block['attrs']['style']['typography']['fontSize']; $fluid_font_size = wp_get_typography_font_size_value( array( 'size' => $custom_font_size ) ); /* * Checks that $fluid_font_size does not match $custom_font_size, * which means it's been mutated by the fluid font size functions. */ if ( ! empty( $fluid_font_size ) && $fluid_font_size !== $custom_font_size ) { // Replaces the first instance of `font-size:$custom_font_size` with `font-size:$fluid_font_size`. return preg_replace( '/font-size\s*:\s*' . preg_quote( $custom_font_size, '/' ) . '\s*;?/', 'font-size:' . esc_attr( $fluid_font_size ) . ';', $block_content, 1 ); } return $block_content; } /** * Checks a string for a unit and value and returns an array * consisting of `'value'` and `'unit'`, e.g. array( '42', 'rem' ). * * @since 6.1.0 * * @param string|int|float $raw_value Raw size value from theme.json. * @param array $options { * Optional. An associative array of options. Default is empty array. * * @type string $coerce_to Coerce the value to rem or px. Default `'rem'`. * @type int $root_size_value Value of root font size for rem|em <-> px conversion. Default `16`. * @type string[] $acceptable_units An array of font size units. Default `array( 'rem', 'px', 'em' )`; * } * @return array|null An array consisting of `'value'` and `'unit'` properties on success. * `null` on failure. */ function wp_get_typography_value_and_unit( $raw_value, $options = array() ) { if ( ! is_string( $raw_value ) && ! is_int( $raw_value ) && ! is_float( $raw_value ) ) { _doing_it_wrong( __FUNCTION__, __( 'Raw size value must be a string, integer, or float.' ), '6.1.0' ); return null; } if ( empty( $raw_value ) ) { return null; } // Converts numbers to pixel values by default. if ( is_numeric( $raw_value ) ) { $raw_value = $raw_value . 'px'; } $defaults = array( 'coerce_to' => '', 'root_size_value' => 16, 'acceptable_units' => array( 'rem', 'px', 'em' ), ); $options = wp_parse_args( $options, $defaults ); $acceptable_units_group = implode( '|', $options['acceptable_units'] ); $pattern = '/^(\d*\.?\d+)(' . $acceptable_units_group . '){1,1}$/'; preg_match( $pattern, $raw_value, $matches ); // Bails out if not a number value and a px or rem unit. if ( ! isset( $matches[1] ) || ! isset( $matches[2] ) ) { return null; } $value = $matches[1]; $unit = $matches[2]; /* * Default browser font size. Later, possibly could inject some JS to * compute this `getComputedStyle( document.querySelector( "html" ) ).fontSize`. */ if ( 'px' === $options['coerce_to'] && ( 'em' === $unit || 'rem' === $unit ) ) { $value = $value * $options['root_size_value']; $unit = $options['coerce_to']; } if ( 'px' === $unit && ( 'em' === $options['coerce_to'] || 'rem' === $options['coerce_to'] ) ) { $value = $value / $options['root_size_value']; $unit = $options['coerce_to']; } /* * No calculation is required if swapping between em and rem yet, * since we assume a root size value. Later we might like to differentiate between * :root font size (rem) and parent element font size (em) relativity. */ if ( ( 'em' === $options['coerce_to'] || 'rem' === $options['coerce_to'] ) && ( 'em' === $unit || 'rem' === $unit ) ) { $unit = $options['coerce_to']; } return array( 'value' => round( $value, 3 ), 'unit' => $unit, ); } /** * Internal implementation of CSS clamp() based on available min/max viewport * width and min/max font sizes. * * @since 6.1.0 * @since 6.3.0 Checks for unsupported min/max viewport values that cause invalid clamp values. * @since 6.5.0 Returns early when min and max viewport subtraction is zero to avoid division by zero. * @access private * * @param array $args { * Optional. An associative array of values to calculate a fluid formula * for font size. Default is empty array. * * @type string $maximum_viewport_width Maximum size up to which type will have fluidity. * @type string $minimum_viewport_width Minimum viewport size from which type will have fluidity. * @type string $maximum_font_size Maximum font size for any clamp() calculation. * @type string $minimum_font_size Minimum font size for any clamp() calculation. * @type int $scale_factor A scale factor to determine how fast a font scales within boundaries. * } * @return string|null A font-size value using clamp() on success, otherwise null. */ function wp_get_computed_fluid_typography_value( $args = array() ) { $maximum_viewport_width_raw = $args['maximum_viewport_width'] ?? null; $minimum_viewport_width_raw = $args['minimum_viewport_width'] ?? null; $maximum_font_size_raw = $args['maximum_font_size'] ?? null; $minimum_font_size_raw = $args['minimum_font_size'] ?? null; $scale_factor = $args['scale_factor'] ?? null; // Normalizes the minimum font size in order to use the value for calculations. $minimum_font_size = wp_get_typography_value_and_unit( $minimum_font_size_raw ); /* * We get a 'preferred' unit to keep units consistent when calculating, * otherwise the result will not be accurate. */ $font_size_unit = $minimum_font_size['unit'] ?? 'rem'; // Normalizes the maximum font size in order to use the value for calculations. $maximum_font_size = wp_get_typography_value_and_unit( $maximum_font_size_raw, array( 'coerce_to' => $font_size_unit, ) ); // Checks for mandatory min and max sizes, and protects against unsupported units. if ( ! $maximum_font_size || ! $minimum_font_size ) { return null; } // Uses rem for accessible fluid target font scaling. $minimum_font_size_rem = wp_get_typography_value_and_unit( $minimum_font_size_raw, array( 'coerce_to' => 'rem', ) ); // Viewport widths defined for fluid typography. Normalize units. $maximum_viewport_width = wp_get_typography_value_and_unit( $maximum_viewport_width_raw, array( 'coerce_to' => $font_size_unit, ) ); $minimum_viewport_width = wp_get_typography_value_and_unit( $minimum_viewport_width_raw, array( 'coerce_to' => $font_size_unit, ) ); // Protects against unsupported units in min and max viewport widths. if ( ! $minimum_viewport_width || ! $maximum_viewport_width ) { return null; } // Calculates the linear factor denominator. If it's 0, we cannot calculate a fluid value. $linear_factor_denominator = $maximum_viewport_width['value'] - $minimum_viewport_width['value']; if ( empty( $linear_factor_denominator ) ) { return null; } /* * Build CSS rule. * Borrowed from https://websemantics.uk/tools/responsive-font-calculator/. */ $view_port_width_offset = round( $minimum_viewport_width['value'] / 100, 3 ) . $font_size_unit; $linear_factor = 100 * ( ( $maximum_font_size['value'] - $minimum_font_size['value'] ) / ( $linear_factor_denominator ) ); $linear_factor_scaled = round( $linear_factor * $scale_factor, 3 ); $linear_factor_scaled = empty( $linear_factor_scaled ) ? 1 : $linear_factor_scaled; $fluid_target_font_size = implode( '', $minimum_font_size_rem ) . " + ((1vw - $view_port_width_offset) * $linear_factor_scaled)"; return "clamp($minimum_font_size_raw, $fluid_target_font_size, $maximum_font_size_raw)"; } /** * Returns a font-size value based on a given font-size preset. * Takes into account fluid typography parameters and attempts to return a CSS * formula depending on available, valid values. * * @since 6.1.0 * @since 6.1.1 Adjusted rules for min and max font sizes. * @since 6.2.0 Added 'settings.typography.fluid.minFontSize' support. * @since 6.3.0 Using layout.wideSize as max viewport width, and logarithmic scale factor to calculate minimum font scale. * @since 6.4.0 Added configurable min and max viewport width values to the typography.fluid theme.json schema. * @since 6.6.0 Deprecated bool argument $should_use_fluid_typography. * @since 6.7.0 Font size presets can enable fluid typography individually, even if it’s disabled globally. * * @param array $preset { * Required. fontSizes preset value as seen in theme.json. * * @type string $name Name of the font size preset. * @type string $slug Kebab-case, unique identifier for the font size preset. * @type string|int|float $size CSS font-size value, including units if applicable. * } * @param bool|array $settings Optional Theme JSON settings array that overrides any global theme settings. * Default is false. * @return string|null Font-size value or null if a size is not passed in $preset. */ function wp_get_typography_font_size_value( $preset, $settings = array() ) { if ( ! isset( $preset['size'] ) ) { return null; } /* * Catches falsy values and 0/'0'. Fluid calculations cannot be performed on `0`. * Also returns early when a preset font size explicitly disables fluid typography with `false`. */ $fluid_font_size_settings = $preset['fluid'] ?? null; if ( false === $fluid_font_size_settings || empty( $preset['size'] ) ) { return $preset['size']; } /* * As a boolean (deprecated since 6.6), $settings acts as an override to switch fluid typography "on" (`true`) or "off" (`false`). */ if ( is_bool( $settings ) ) { _deprecated_argument( __FUNCTION__, '6.6.0', __( '`boolean` type for second argument `$settings` is deprecated. Use `array()` instead.' ) ); $settings = array( 'typography' => array( 'fluid' => $settings, ), ); } // Fallback to global settings as default. $global_settings = wp_get_global_settings(); $settings = wp_parse_args( $settings, $global_settings ); $typography_settings = $settings['typography'] ?? array(); /* * Return early when fluid typography is disabled in the settings, and there * are no local settings to enable it for the individual preset. * * If this condition isn't met, either the settings or individual preset settings * have enabled fluid typography. */ if ( empty( $typography_settings['fluid'] ) && empty( $fluid_font_size_settings ) ) { return $preset['size']; } $fluid_settings = $typography_settings['fluid'] ?? array(); $layout_settings = $settings['layout'] ?? array(); // Defaults. $default_maximum_viewport_width = '1600px'; $default_minimum_viewport_width = '320px'; $default_minimum_font_size_factor_max = 0.75; $default_minimum_font_size_factor_min = 0.25; $default_scale_factor = 1; $default_minimum_font_size_limit = '14px'; // Defaults overrides. $minimum_viewport_width = $fluid_settings['minViewportWidth'] ?? $default_minimum_viewport_width; $maximum_viewport_width = isset( $layout_settings['wideSize'] ) && ! empty( wp_get_typography_value_and_unit( $layout_settings['wideSize'] ) ) ? $layout_settings['wideSize'] : $default_maximum_viewport_width; if ( isset( $fluid_settings['maxViewportWidth'] ) ) { $maximum_viewport_width = $fluid_settings['maxViewportWidth']; } $has_min_font_size = isset( $fluid_settings['minFontSize'] ) && ! empty( wp_get_typography_value_and_unit( $fluid_settings['minFontSize'] ) ); $minimum_font_size_limit = $has_min_font_size ? $fluid_settings['minFontSize'] : $default_minimum_font_size_limit; // Try to grab explicit min and max fluid font sizes. $minimum_font_size_raw = $fluid_font_size_settings['min'] ?? null; $maximum_font_size_raw = $fluid_font_size_settings['max'] ?? null; // Font sizes. $preferred_size = wp_get_typography_value_and_unit( $preset['size'] ); // Protects against unsupported units. if ( empty( $preferred_size['unit'] ) ) { return $preset['size']; } /* * Normalizes the minimum font size limit according to the incoming unit, * in order to perform comparative checks. */ $minimum_font_size_limit = wp_get_typography_value_and_unit( $minimum_font_size_limit, array( 'coerce_to' => $preferred_size['unit'], ) ); // Don't enforce minimum font size if a font size has explicitly set a min and max value. if ( ! empty( $minimum_font_size_limit ) && ( ! $minimum_font_size_raw && ! $maximum_font_size_raw ) ) { /* * If a minimum size was not passed to this function * and the user-defined font size is lower than $minimum_font_size_limit, * do not calculate a fluid value. */ if ( $preferred_size['value'] <= $minimum_font_size_limit['value'] ) { return $preset['size']; } } // If no fluid max font size is available use the incoming value. if ( ! $maximum_font_size_raw ) { $maximum_font_size_raw = $preferred_size['value'] . $preferred_size['unit']; } /* * If no minimumFontSize is provided, create one using * the given font size multiplied by the min font size scale factor. */ if ( ! $minimum_font_size_raw ) { $preferred_font_size_in_px = 'px' === $preferred_size['unit'] ? $preferred_size['value'] : $preferred_size['value'] * 16; /* * The scale factor is a multiplier that affects how quickly the curve will move towards the minimum, * that is, how quickly the size factor reaches 0 given increasing font size values. * For a - b * log2(), lower values of b will make the curve move towards the minimum faster. * The scale factor is constrained between min and max values. */ $minimum_font_size_factor = min( max( 1 - 0.075 * log( $preferred_font_size_in_px, 2 ), $default_minimum_font_size_factor_min ), $default_minimum_font_size_factor_max ); $calculated_minimum_font_size = round( $preferred_size['value'] * $minimum_font_size_factor, 3 ); // Only use calculated min font size if it's > $minimum_font_size_limit value. if ( ! empty( $minimum_font_size_limit ) && $calculated_minimum_font_size <= $minimum_font_size_limit['value'] ) { $minimum_font_size_raw = $minimum_font_size_limit['value'] . $minimum_font_size_limit['unit']; } else { $minimum_font_size_raw = $calculated_minimum_font_size . $preferred_size['unit']; } } $fluid_font_size_value = wp_get_computed_fluid_typography_value( array( 'minimum_viewport_width' => $minimum_viewport_width, 'maximum_viewport_width' => $maximum_viewport_width, 'minimum_font_size' => $minimum_font_size_raw, 'maximum_font_size' => $maximum_font_size_raw, 'scale_factor' => $default_scale_factor, ) ); if ( ! empty( $fluid_font_size_value ) ) { return $fluid_font_size_value; } return $preset['size']; } // Register the block support. WP_Block_Supports::get_instance()->register( 'typography', array( 'register_attribute' => 'wp_register_typography_support', 'apply' => 'wp_apply_typography_support', ) ); PKN\#_-- shadow.phpnu[attributes ) { $block_type->attributes = array(); } if ( array_key_exists( 'style', $block_type->attributes ) ) { $block_type->attributes['style'] = array( 'type' => 'object', ); } if ( array_key_exists( 'shadow', $block_type->attributes ) ) { $block_type->attributes['shadow'] = array( 'type' => 'string', ); } } /** * Add CSS classes and inline styles for shadow features to the incoming attributes array. * This will be applied to the block markup in the front-end. * * @since 6.3.0 * @since 6.6.0 Return early if __experimentalSkipSerialization is true. * @access private * * @param WP_Block_Type $block_type Block type. * @param array $block_attributes Block attributes. * @return array Shadow CSS classes and inline styles. */ function wp_apply_shadow_support( $block_type, $block_attributes ) { $has_shadow_support = block_has_support( $block_type, 'shadow', false ); if ( ! $has_shadow_support || wp_should_skip_block_supports_serialization( $block_type, 'shadow' ) ) { return array(); } $shadow_block_styles = array(); $custom_shadow = $block_attributes['style']['shadow'] ?? null; $shadow_block_styles['shadow'] = $custom_shadow; $attributes = array(); $styles = wp_style_engine_get_styles( $shadow_block_styles ); if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } // Register the block support. WP_Block_Supports::get_instance()->register( 'shadow', array( 'register_attribute' => 'wp_register_shadow_support', 'apply' => 'wp_apply_shadow_support', ) ); PKN\k7B@@ layout.phpnu[> $registered_styles Currently registered block styles. * @return string|null The name of the first registered variation, or null if none found. */ function wp_get_block_style_variation_name_from_registered_style( string $class_name, array $registered_styles = array() ): ?string { if ( ! $class_name ) { return null; } $registered_names = array_filter( array_column( $registered_styles, 'name' ) ); $prefix = 'is-style-'; $length = strlen( $prefix ); foreach ( explode( ' ', $class_name ) as $class ) { if ( str_starts_with( $class, $prefix ) ) { $variation = substr( $class, $length ); if ( 'default' !== $variation && in_array( $variation, $registered_names, true ) ) { return $variation; } } } return null; } /** * Returns layout definitions, keyed by layout type. * * Provides a common definition of slugs, classnames, base styles, and spacing styles for each layout type. * When making changes or additions to layout definitions, the corresponding JavaScript definitions should * also be updated. * * @since 6.3.0 * @since 6.6.0 Updated specificity for compatibility with 0-1-0 global styles specificity. * @access private * * @return array[] Layout definitions. */ function wp_get_layout_definitions() { $layout_definitions = array( 'default' => array( 'name' => 'default', 'slug' => 'flow', 'className' => 'is-layout-flow', 'baseStyles' => array( array( 'selector' => ' > .alignleft', 'rules' => array( 'float' => 'left', 'margin-inline-start' => '0', 'margin-inline-end' => '2em', ), ), array( 'selector' => ' > .alignright', 'rules' => array( 'float' => 'right', 'margin-inline-start' => '2em', 'margin-inline-end' => '0', ), ), array( 'selector' => ' > .aligncenter', 'rules' => array( 'margin-left' => 'auto !important', 'margin-right' => 'auto !important', ), ), ), 'spacingStyles' => array( array( 'selector' => ' > :first-child', 'rules' => array( 'margin-block-start' => '0', ), ), array( 'selector' => ' > :last-child', 'rules' => array( 'margin-block-end' => '0', ), ), array( 'selector' => ' > *', 'rules' => array( 'margin-block-start' => null, 'margin-block-end' => '0', ), ), ), ), 'constrained' => array( 'name' => 'constrained', 'slug' => 'constrained', 'className' => 'is-layout-constrained', 'baseStyles' => array( array( 'selector' => ' > .alignleft', 'rules' => array( 'float' => 'left', 'margin-inline-start' => '0', 'margin-inline-end' => '2em', ), ), array( 'selector' => ' > .alignright', 'rules' => array( 'float' => 'right', 'margin-inline-start' => '2em', 'margin-inline-end' => '0', ), ), array( 'selector' => ' > .aligncenter', 'rules' => array( 'margin-left' => 'auto !important', 'margin-right' => 'auto !important', ), ), array( 'selector' => ' > :where(:not(.alignleft):not(.alignright):not(.alignfull))', 'rules' => array( 'max-width' => 'var(--wp--style--global--content-size)', 'margin-left' => 'auto !important', 'margin-right' => 'auto !important', ), ), array( 'selector' => ' > .alignwide', 'rules' => array( 'max-width' => 'var(--wp--style--global--wide-size)', ), ), ), 'spacingStyles' => array( array( 'selector' => ' > :first-child', 'rules' => array( 'margin-block-start' => '0', ), ), array( 'selector' => ' > :last-child', 'rules' => array( 'margin-block-end' => '0', ), ), array( 'selector' => ' > *', 'rules' => array( 'margin-block-start' => null, 'margin-block-end' => '0', ), ), ), ), 'flex' => array( 'name' => 'flex', 'slug' => 'flex', 'className' => 'is-layout-flex', 'displayMode' => 'flex', 'baseStyles' => array( array( 'selector' => '', 'rules' => array( 'flex-wrap' => 'wrap', 'align-items' => 'center', ), ), array( 'selector' => ' > :is(*, div)', // :is(*, div) instead of just * increases the specificity by 001. 'rules' => array( 'margin' => '0', ), ), ), 'spacingStyles' => array( array( 'selector' => '', 'rules' => array( 'gap' => null, ), ), ), ), 'grid' => array( 'name' => 'grid', 'slug' => 'grid', 'className' => 'is-layout-grid', 'displayMode' => 'grid', 'baseStyles' => array( array( 'selector' => ' > :is(*, div)', // :is(*, div) instead of just * increases the specificity by 001. 'rules' => array( 'margin' => '0', ), ), ), 'spacingStyles' => array( array( 'selector' => '', 'rules' => array( 'gap' => null, ), ), ), ), ); return $layout_definitions; } /** * Registers the layout block attribute for block types that support it. * * @since 5.8.0 * @since 6.3.0 Check for layout support via the `layout` key with fallback to `__experimentalLayout`. * @access private * * @param WP_Block_Type $block_type Block Type. */ function wp_register_layout_support( $block_type ) { $support_layout = block_has_support( $block_type, 'layout', false ) || block_has_support( $block_type, '__experimentalLayout', false ); if ( $support_layout ) { if ( ! $block_type->attributes ) { $block_type->attributes = array(); } if ( ! array_key_exists( 'layout', $block_type->attributes ) ) { $block_type->attributes['layout'] = array( 'type' => 'object', ); } } } /** * Generates the CSS corresponding to the provided layout. * * @since 5.9.0 * @since 6.1.0 Added `$block_spacing` param, use style engine to enqueue styles. * @since 6.3.0 Added grid layout type. * @since 6.6.0 Removed duplicated selector from layout styles. * Enabled negative margins for alignfull children of blocks with custom padding. * @access private * * @param string $selector CSS selector. * @param array $layout Layout object. The one that is passed has already checked * the existence of default block layout. * @param bool $has_block_gap_support Optional. Whether the theme has support for the block gap. Default false. * @param string|string[]|null $gap_value Optional. The block gap value to apply. Default null. * @param bool $should_skip_gap_serialization Optional. Whether to skip applying the user-defined value set in the editor. Default false. * @param string|array $fallback_gap_value Optional. The block gap value to apply. If it's an array expected properties are "top" and/or "left". Default '0.5em'. * @param array|null $block_spacing Optional. Custom spacing set on the block. Default null. * @return string CSS styles on success. Else, empty string. */ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false, $gap_value = null, $should_skip_gap_serialization = false, $fallback_gap_value = '0.5em', $block_spacing = null ) { $layout_type = $layout['type'] ?? 'default'; $layout_styles = array(); if ( 'default' === $layout_type ) { if ( $has_block_gap_support ) { if ( is_array( $gap_value ) ) { $gap_value = $gap_value['top'] ?? null; } if ( null !== $gap_value && ! $should_skip_gap_serialization ) { // Get spacing CSS variable from preset value if provided. if ( is_string( $gap_value ) && str_contains( $gap_value, 'var:preset|spacing|' ) ) { $index_to_splice = strrpos( $gap_value, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $gap_value, $index_to_splice ) ); $gap_value = "var(--wp--preset--spacing--$slug)"; } array_push( $layout_styles, array( 'selector' => "$selector > *", 'declarations' => array( 'margin-block-start' => '0', 'margin-block-end' => '0', ), ), array( 'selector' => "$selector > * + *", 'declarations' => array( 'margin-block-start' => $gap_value, 'margin-block-end' => '0', ), ) ); } } } elseif ( 'constrained' === $layout_type ) { $content_size = $layout['contentSize'] ?? ''; $wide_size = $layout['wideSize'] ?? ''; $justify_content = $layout['justifyContent'] ?? 'center'; $all_max_width_value = $content_size ? $content_size : $wide_size; $wide_max_width_value = $wide_size ? $wide_size : $content_size; // Make sure there is a single CSS rule, and all tags are stripped for security. $all_max_width_value = safecss_filter_attr( explode( ';', $all_max_width_value )[0] ); $wide_max_width_value = safecss_filter_attr( explode( ';', $wide_max_width_value )[0] ); $margin_left = 'left' === $justify_content ? '0 !important' : 'auto !important'; $margin_right = 'right' === $justify_content ? '0 !important' : 'auto !important'; if ( $content_size || $wide_size ) { array_push( $layout_styles, array( 'selector' => "$selector > :where(:not(.alignleft):not(.alignright):not(.alignfull))", 'declarations' => array( 'max-width' => $all_max_width_value, 'margin-left' => $margin_left, 'margin-right' => $margin_right, ), ), array( 'selector' => "$selector > .alignwide", 'declarations' => array( 'max-width' => $wide_max_width_value ), ), array( 'selector' => "$selector .alignfull", 'declarations' => array( 'max-width' => 'none' ), ) ); } if ( isset( $block_spacing ) ) { $block_spacing_values = wp_style_engine_get_styles( array( 'spacing' => $block_spacing, ) ); /* * Handle negative margins for alignfull children of blocks with custom padding set. * They're added separately because padding might only be set on one side. */ if ( isset( $block_spacing_values['declarations']['padding-right'] ) ) { $padding_right = $block_spacing_values['declarations']['padding-right']; // Add unit if 0. if ( '0' === $padding_right ) { $padding_right = '0px'; } $layout_styles[] = array( 'selector' => "$selector > .alignfull", 'declarations' => array( 'margin-right' => "calc($padding_right * -1)" ), ); } if ( isset( $block_spacing_values['declarations']['padding-left'] ) ) { $padding_left = $block_spacing_values['declarations']['padding-left']; // Add unit if 0. if ( '0' === $padding_left ) { $padding_left = '0px'; } $layout_styles[] = array( 'selector' => "$selector > .alignfull", 'declarations' => array( 'margin-left' => "calc($padding_left * -1)" ), ); } } if ( 'left' === $justify_content ) { $layout_styles[] = array( 'selector' => "$selector > :where(:not(.alignleft):not(.alignright):not(.alignfull))", 'declarations' => array( 'margin-left' => '0 !important' ), ); } if ( 'right' === $justify_content ) { $layout_styles[] = array( 'selector' => "$selector > :where(:not(.alignleft):not(.alignright):not(.alignfull))", 'declarations' => array( 'margin-right' => '0 !important' ), ); } if ( $has_block_gap_support ) { if ( is_array( $gap_value ) ) { $gap_value = $gap_value['top'] ?? null; } if ( null !== $gap_value && ! $should_skip_gap_serialization ) { // Get spacing CSS variable from preset value if provided. if ( is_string( $gap_value ) && str_contains( $gap_value, 'var:preset|spacing|' ) ) { $index_to_splice = strrpos( $gap_value, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $gap_value, $index_to_splice ) ); $gap_value = "var(--wp--preset--spacing--$slug)"; } array_push( $layout_styles, array( 'selector' => "$selector > *", 'declarations' => array( 'margin-block-start' => '0', 'margin-block-end' => '0', ), ), array( 'selector' => "$selector > * + *", 'declarations' => array( 'margin-block-start' => $gap_value, 'margin-block-end' => '0', ), ) ); } } } elseif ( 'flex' === $layout_type ) { $layout_orientation = $layout['orientation'] ?? 'horizontal'; $justify_content_options = array( 'left' => 'flex-start', 'right' => 'flex-end', 'center' => 'center', ); $vertical_alignment_options = array( 'top' => 'flex-start', 'center' => 'center', 'bottom' => 'flex-end', ); if ( 'horizontal' === $layout_orientation ) { $justify_content_options += array( 'space-between' => 'space-between' ); $vertical_alignment_options += array( 'stretch' => 'stretch' ); } else { $justify_content_options += array( 'stretch' => 'stretch' ); $vertical_alignment_options += array( 'space-between' => 'space-between' ); } if ( ! empty( $layout['flexWrap'] ) && 'nowrap' === $layout['flexWrap'] ) { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'flex-wrap' => 'nowrap' ), ); } if ( $has_block_gap_support && isset( $gap_value ) ) { $combined_gap_value = ''; $gap_sides = is_array( $gap_value ) ? array( 'top', 'left' ) : array( 'top' ); foreach ( $gap_sides as $gap_side ) { $process_value = $gap_value; if ( is_array( $gap_value ) ) { if ( is_array( $fallback_gap_value ) ) { $fallback_value = $fallback_gap_value[ $gap_side ] ?? reset( $fallback_gap_value ); } else { $fallback_value = $fallback_gap_value; } $process_value = $gap_value[ $gap_side ] ?? $fallback_value; } // Get spacing CSS variable from preset value if provided. if ( is_string( $process_value ) && str_contains( $process_value, 'var:preset|spacing|' ) ) { $index_to_splice = strrpos( $process_value, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $process_value, $index_to_splice ) ); $process_value = "var(--wp--preset--spacing--$slug)"; } $combined_gap_value .= "$process_value "; } $gap_value = trim( $combined_gap_value ); if ( null !== $gap_value && ! $should_skip_gap_serialization ) { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'gap' => $gap_value ), ); } } if ( 'horizontal' === $layout_orientation ) { /* * Add this style only if is not empty for backwards compatibility, * since we intend to convert blocks that had flex layout implemented * by custom css. */ if ( ! empty( $layout['justifyContent'] ) && array_key_exists( $layout['justifyContent'], $justify_content_options ) ) { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'justify-content' => $justify_content_options[ $layout['justifyContent'] ] ), ); } if ( ! empty( $layout['verticalAlignment'] ) && array_key_exists( $layout['verticalAlignment'], $vertical_alignment_options ) ) { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'align-items' => $vertical_alignment_options[ $layout['verticalAlignment'] ] ), ); } } else { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'flex-direction' => 'column' ), ); if ( ! empty( $layout['justifyContent'] ) && array_key_exists( $layout['justifyContent'], $justify_content_options ) ) { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'align-items' => $justify_content_options[ $layout['justifyContent'] ] ), ); } else { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'align-items' => 'flex-start' ), ); } if ( ! empty( $layout['verticalAlignment'] ) && array_key_exists( $layout['verticalAlignment'], $vertical_alignment_options ) ) { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'justify-content' => $vertical_alignment_options[ $layout['verticalAlignment'] ] ), ); } } } elseif ( 'grid' === $layout_type ) { /* * If the gap value is an array, we use the "left" value because it represents the vertical gap, which * is the relevant one for computation of responsive grid columns. */ if ( is_array( $fallback_gap_value ) ) { $responsive_gap_value = $fallback_gap_value['left'] ?? reset( $fallback_gap_value ); } else { $responsive_gap_value = $fallback_gap_value; } if ( $has_block_gap_support && isset( $gap_value ) ) { $combined_gap_value = ''; $gap_sides = is_array( $gap_value ) ? array( 'top', 'left' ) : array( 'top' ); foreach ( $gap_sides as $gap_side ) { $process_value = $gap_value; if ( is_array( $gap_value ) ) { if ( is_array( $fallback_gap_value ) ) { $fallback_value = $fallback_gap_value[ $gap_side ] ?? reset( $fallback_gap_value ); } else { $fallback_value = $fallback_gap_value; } $process_value = $gap_value[ $gap_side ] ?? $fallback_value; } // Get spacing CSS variable from preset value if provided. if ( is_string( $process_value ) && str_contains( $process_value, 'var:preset|spacing|' ) ) { $index_to_splice = strrpos( $process_value, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $process_value, $index_to_splice ) ); $process_value = "var(--wp--preset--spacing--$slug)"; } $combined_gap_value .= "$process_value "; } $gap_value = trim( $combined_gap_value ); $responsive_gap_value = $gap_value; } // Ensure 0 values have a unit so they work in calc(). if ( '0' === $responsive_gap_value || 0 === $responsive_gap_value ) { $responsive_gap_value = '0px'; } if ( ! empty( $layout['columnCount'] ) && ! empty( $layout['minimumColumnWidth'] ) ) { $max_value = 'max(min(' . $layout['minimumColumnWidth'] . ', 100%), (100% - (' . $responsive_gap_value . ' * (' . $layout['columnCount'] . ' - 1))) /' . $layout['columnCount'] . ')'; $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'grid-template-columns' => 'repeat(auto-fill, minmax(' . $max_value . ', 1fr))', 'container-type' => 'inline-size', ), ); if ( ! empty( $layout['rowCount'] ) ) { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'grid-template-rows' => 'repeat(' . $layout['rowCount'] . ', minmax(1rem, auto))' ), ); } } elseif ( ! empty( $layout['columnCount'] ) ) { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'grid-template-columns' => 'repeat(' . $layout['columnCount'] . ', minmax(0, 1fr))' ), ); if ( ! empty( $layout['rowCount'] ) ) { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'grid-template-rows' => 'repeat(' . $layout['rowCount'] . ', minmax(1rem, auto))' ), ); } } else { $minimum_column_width = ! empty( $layout['minimumColumnWidth'] ) ? $layout['minimumColumnWidth'] : '12rem'; $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'grid-template-columns' => 'repeat(auto-fill, minmax(min(' . $minimum_column_width . ', 100%), 1fr))', 'container-type' => 'inline-size', ), ); } if ( $has_block_gap_support && null !== $gap_value && ! $should_skip_gap_serialization ) { $layout_styles[] = array( 'selector' => $selector, 'declarations' => array( 'gap' => $gap_value ), ); } } if ( ! empty( $layout_styles ) ) { /* * Add to the style engine store to enqueue and render layout styles. * Return compiled layout styles to retain backwards compatibility. * Since https://github.com/WordPress/gutenberg/pull/42452, * wp_enqueue_block_support_styles is no longer called in this block supports file. */ return wp_style_engine_get_stylesheet_from_css_rules( $layout_styles, array( 'context' => 'block-supports', 'prettify' => false, ) ); } return ''; } /** * Renders the layout config to the block wrapper. * * @since 5.8.0 * @since 6.3.0 Adds compound class to layout wrapper for global spacing styles. * @since 6.3.0 Check for layout support via the `layout` key with fallback to `__experimentalLayout`. * @since 6.6.0 Removed duplicate container class from layout styles. * @access private * * @param string $block_content Rendered block content. * @param array $block Block object. * @return string Filtered block content. */ function wp_render_layout_support_flag( $block_content, $block ) { static $global_styles = null; $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] ); $block_supports_layout = block_has_support( $block_type, 'layout', false ) || block_has_support( $block_type, '__experimentalLayout', false ); $child_layout = $block['attrs']['style']['layout'] ?? null; if ( ! $block_supports_layout && ! $child_layout ) { return $block_content; } $outer_class_names = array(); // Child layout specific logic. if ( $child_layout ) { /* * Generates a unique class for child block layout styles. * * To ensure consistent class generation across different page renders, * only properties that affect layout styling are used. These properties * come from `$block['attrs']['style']['layout']` and `$block['parentLayout']`. * * As long as these properties coincide, the generated class will be the same. */ $container_content_class = wp_unique_id_from_values( array( 'layout' => array_intersect_key( $block['attrs']['style']['layout'] ?? array(), array_flip( array( 'selfStretch', 'flexSize', 'columnStart', 'columnSpan', 'rowStart', 'rowSpan' ) ) ), 'parentLayout' => array_intersect_key( $block['parentLayout'] ?? array(), array_flip( array( 'minimumColumnWidth', 'columnCount' ) ) ), ), 'wp-container-content-' ); $child_layout_declarations = array(); $child_layout_styles = array(); $self_stretch = $child_layout['selfStretch'] ?? null; if ( 'fixed' === $self_stretch && isset( $child_layout['flexSize'] ) ) { $child_layout_declarations['flex-basis'] = $child_layout['flexSize']; $child_layout_declarations['box-sizing'] = 'border-box'; } elseif ( 'fill' === $self_stretch ) { $child_layout_declarations['flex-grow'] = '1'; } if ( isset( $child_layout['columnSpan'] ) ) { $column_span = $child_layout['columnSpan']; $child_layout_declarations['grid-column'] = "span $column_span"; } if ( isset( $child_layout['rowSpan'] ) ) { $row_span = $child_layout['rowSpan']; $child_layout_declarations['grid-row'] = "span $row_span"; } $child_layout_styles[] = array( 'selector' => ".$container_content_class", 'declarations' => $child_layout_declarations, ); /* * If columnSpan is set, and the parent grid is responsive, i.e. if it has a minimumColumnWidth set, * the columnSpan should be removed on small grids. If there's a minimumColumnWidth, the grid is responsive. * But if the minimumColumnWidth value wasn't changed, it won't be set. In that case, if columnCount doesn't * exist, we can assume that the grid is responsive. */ if ( isset( $child_layout['columnSpan'] ) && ( isset( $block['parentLayout']['minimumColumnWidth'] ) || ! isset( $block['parentLayout']['columnCount'] ) ) ) { $column_span_number = floatval( $child_layout['columnSpan'] ); $parent_column_width = $block['parentLayout']['minimumColumnWidth'] ?? '12rem'; $parent_column_value = floatval( $parent_column_width ); $parent_column_unit = explode( $parent_column_value, $parent_column_width ); /* * If there is no unit, the width has somehow been mangled so we reset both unit and value * to defaults. * Additionally, the unit should be one of px, rem or em, so that also needs to be checked. */ if ( count( $parent_column_unit ) <= 1 ) { $parent_column_unit = 'rem'; $parent_column_value = 12; } else { $parent_column_unit = $parent_column_unit[1]; if ( ! in_array( $parent_column_unit, array( 'px', 'rem', 'em' ), true ) ) { $parent_column_unit = 'rem'; } } /* * A default gap value is used for this computation because custom gap values may not be * viable to use in the computation of the container query value. */ $default_gap_value = 'px' === $parent_column_unit ? 24 : 1.5; $container_query_value = $column_span_number * $parent_column_value + ( $column_span_number - 1 ) * $default_gap_value; $container_query_value = $container_query_value . $parent_column_unit; $child_layout_styles[] = array( 'rules_group' => "@container (max-width: $container_query_value )", 'selector' => ".$container_content_class", 'declarations' => array( 'grid-column' => '1/-1', ), ); } /* * Add to the style engine store to enqueue and render layout styles. * Return styles here just to check if any exist. */ $child_css = wp_style_engine_get_stylesheet_from_css_rules( $child_layout_styles, array( 'context' => 'block-supports', 'prettify' => false, ) ); if ( $child_css ) { $outer_class_names[] = $container_content_class; } } // Prep the processor for modifying the block output. $processor = new WP_HTML_Tag_Processor( $block_content ); // Having no tags implies there are no tags onto which to add class names. if ( ! $processor->next_tag() ) { return $block_content; } /* * A block may not support layout but still be affected by a parent block's layout. * * In these cases add the appropriate class names and then return early; there's * no need to investigate on this block whether additional layout constraints apply. */ if ( ! $block_supports_layout && ! empty( $outer_class_names ) ) { foreach ( $outer_class_names as $class_name ) { $processor->add_class( $class_name ); } return $processor->get_updated_html(); } elseif ( ! $block_supports_layout ) { // Ensure layout classnames are not injected if there is no layout support. return $block_content; } $global_settings = wp_get_global_settings(); $fallback_layout = $block_type->supports['layout']['default'] ?? array(); if ( empty( $fallback_layout ) ) { $fallback_layout = $block_type->supports['__experimentalLayout']['default'] ?? array(); } $used_layout = $block['attrs']['layout'] ?? $fallback_layout; $class_names = array(); $layout_definitions = wp_get_layout_definitions(); // Set the correct layout type for blocks using legacy content width. if ( isset( $used_layout['inherit'] ) && $used_layout['inherit'] || isset( $used_layout['contentSize'] ) && $used_layout['contentSize'] ) { $used_layout['type'] = 'constrained'; } $root_padding_aware_alignments = $global_settings['useRootPaddingAwareAlignments'] ?? false; if ( $root_padding_aware_alignments && isset( $used_layout['type'] ) && 'constrained' === $used_layout['type'] ) { $class_names[] = 'has-global-padding'; } /* * The following section was added to reintroduce a small set of layout classnames that were * removed in the 5.9 release (https://github.com/WordPress/gutenberg/issues/38719). It is * not intended to provide an extended set of classes to match all block layout attributes * here. */ if ( ! empty( $block['attrs']['layout']['orientation'] ) ) { $class_names[] = 'is-' . sanitize_title( $block['attrs']['layout']['orientation'] ); } if ( ! empty( $block['attrs']['layout']['justifyContent'] ) ) { $class_names[] = 'is-content-justification-' . sanitize_title( $block['attrs']['layout']['justifyContent'] ); } if ( ! empty( $block['attrs']['layout']['flexWrap'] ) && 'nowrap' === $block['attrs']['layout']['flexWrap'] ) { $class_names[] = 'is-nowrap'; } // Get classname for layout type. if ( isset( $used_layout['type'] ) ) { $layout_classname = $layout_definitions[ $used_layout['type'] ]['className'] ?? ''; } else { $layout_classname = $layout_definitions['default']['className'] ?? ''; } if ( $layout_classname && is_string( $layout_classname ) ) { $class_names[] = sanitize_title( $layout_classname ); } /* * Only generate Layout styles if the theme has not opted-out. * Attribute-based Layout classnames are output in all cases. */ if ( ! current_theme_supports( 'disable-layout-styles' ) ) { $gap_value = $block['attrs']['style']['spacing']['blockGap'] ?? null; /* * Skip if gap value contains unsupported characters. * Regex for CSS value borrowed from `safecss_filter_attr`, and used here * to only match against the value, not the CSS attribute. */ if ( is_array( $gap_value ) ) { foreach ( $gap_value as $key => $value ) { $gap_value[ $key ] = $value && preg_match( '%[\\\(&=}]|/\*%', $value ) ? null : $value; } } else { $gap_value = $gap_value && preg_match( '%[\\\(&=}]|/\*%', $gap_value ) ? null : $gap_value; } $fallback_gap_value = $block_type->supports['spacing']['blockGap']['__experimentalDefault'] ?? '0.5em'; $block_spacing = $block['attrs']['style']['spacing'] ?? null; /* * If a block's block.json skips serialization for spacing or spacing.blockGap, * don't apply the user-defined value to the styles. */ $should_skip_gap_serialization = wp_should_skip_block_supports_serialization( $block_type, 'spacing', 'blockGap' ); $block_gap = $global_settings['spacing']['blockGap'] ?? null; $has_block_gap_support = isset( $block_gap ); // Get default blockGap value from global styles for use in layouts like grid. // Check style variation first, then block-specific styles, then fall back to root styles. $block_name = $block['blockName'] ?? ''; if ( null === $global_styles ) { $global_styles = wp_get_global_styles(); } // Check if the block has an active style variation with a blockGap value. // Only check the registry if the className contains a variation class to avoid unnecessary lookups. $variation_block_gap_value = null; $block_class_name = $block['attrs']['className'] ?? ''; if ( $block_class_name && str_contains( $block_class_name, 'is-style-' ) && $block_name ) { $styles_registry = WP_Block_Styles_Registry::get_instance(); $registered_styles = $styles_registry->get_registered_styles_for_block( $block_name ); $variation_name = wp_get_block_style_variation_name_from_registered_style( $block_class_name, $registered_styles ); if ( $variation_name ) { $variation_block_gap_value = $global_styles['blocks'][ $block_name ]['variations'][ $variation_name ]['spacing']['blockGap'] ?? null; } } $global_block_gap_value = $variation_block_gap_value ?? $global_styles['blocks'][ $block_name ]['spacing']['blockGap'] ?? $global_styles['spacing']['blockGap'] ?? null; if ( null !== $global_block_gap_value ) { $fallback_gap_value = $global_block_gap_value; } /* * Generates a unique ID based on all the data required to obtain the * corresponding layout style. Keeps the CSS class names the same * even for different blocks on different places, as long as they have * the same layout definition. Makes the CSS class names stable across * paginations for features like the enhanced pagination of the Query block. */ $container_class = wp_unique_id_from_values( array( $used_layout, $has_block_gap_support, $gap_value, $should_skip_gap_serialization, $fallback_gap_value, $block_spacing, ), 'wp-container-' . sanitize_title( $block['blockName'] ) . '-is-layout-' ); $style = wp_get_layout_style( ".$container_class", $used_layout, $has_block_gap_support, $gap_value, $should_skip_gap_serialization, $fallback_gap_value, $block_spacing ); // Only add container class and enqueue block support styles if unique styles were generated. if ( ! empty( $style ) ) { $class_names[] = $container_class; } } // Add combined layout and block classname for global styles to hook onto. $split_block_name = explode( '/', $block['blockName'] ); $full_block_name = 'core' === $split_block_name[0] ? end( $split_block_name ) : implode( '-', $split_block_name ); $class_names[] = 'wp-block-' . $full_block_name . '-' . $layout_classname; // Add classes to the outermost HTML tag if necessary. if ( ! empty( $outer_class_names ) ) { foreach ( $outer_class_names as $outer_class_name ) { $processor->add_class( $outer_class_name ); } } /** * Attempts to refer to the inner-block wrapping element by its class attribute. * * When examining a block's inner content, if a block has inner blocks, then * the first content item will likely be a text (HTML) chunk immediately * preceding the inner blocks. The last HTML tag in that chunk would then be * an opening tag for an element that wraps the inner blocks. * * There's no reliable way to associate this wrapper in $block_content because * it may have changed during the rendering pipeline (as inner contents is * provided before rendering) and through previous filters. In many cases, * however, the `class` attribute will be a good-enough identifier, so this * code finds the last tag in that chunk and stores the `class` attribute * so that it can be used later when working through the rendered block output * to identify the wrapping element and add the remaining class names to it. * * It's also possible that no inner block wrapper even exists. If that's the * case this code could apply the class names to an invalid element. * * Example: * * $block['innerBlocks'] = array( $list_item ); * $block['innerContent'] = array( '' ); * * // After rendering, the initial contents may have been modified by other renderers or filters. * $block_content = << *
It's a list!
* * HTML; * * Although it is possible that the original block-wrapper classes are changed in $block_content * from how they appear in $block['innerContent'], it's likely that the original class attributes * are still present in the wrapper as they are in this example. Frequently, additional classes * will also be present; rarely should classes be removed. * * @todo Find a better way to match the first inner block. If it's possible to identify where the * first inner block starts, then it will be possible to find the last tag before it starts * and then that tag, if an opening tag, can be solidly identified as a wrapping element. * Can some unique value or class or ID be added to the inner blocks when they process * so that they can be extracted here safely without guessing? Can the block rendering function * return information about where the rendered inner blocks start? * * @var string|null */ $inner_block_wrapper_classes = null; $first_chunk = $block['innerContent'][0] ?? null; if ( is_string( $first_chunk ) && count( $block['innerContent'] ) > 1 ) { $first_chunk_processor = new WP_HTML_Tag_Processor( $first_chunk ); while ( $first_chunk_processor->next_tag() ) { $class_attribute = $first_chunk_processor->get_attribute( 'class' ); if ( is_string( $class_attribute ) && ! empty( $class_attribute ) ) { $inner_block_wrapper_classes = $class_attribute; } } } /* * If necessary, advance to what is likely to be an inner block wrapper tag. * * This advances until it finds the first tag containing the original class * attribute from above. If none is found it will scan to the end of the block * and fail to add any class names. * * If there is no block wrapper it won't advance at all, in which case the * class names will be added to the first and outermost tag of the block. * For cases where this outermost tag is the only tag surrounding inner * blocks then the outer wrapper and inner wrapper are the same. */ do { if ( ! $inner_block_wrapper_classes ) { break; } $class_attribute = $processor->get_attribute( 'class' ); if ( is_string( $class_attribute ) && str_contains( $class_attribute, $inner_block_wrapper_classes ) ) { break; } } while ( $processor->next_tag() ); // Add the remaining class names. foreach ( $class_names as $class_name ) { $processor->add_class( $class_name ); } return $processor->get_updated_html(); } /** * Check if the parent block exists and if it has a layout attribute. * If it does, add the parent layout to the parsed block * * @since 6.6.0 * @access private * * @param array $parsed_block The parsed block. * @param array $source_block The source block. * @param WP_Block $parent_block The parent block. * @return array The parsed block with parent layout attribute if it exists. */ function wp_add_parent_layout_to_parsed_block( $parsed_block, $source_block, $parent_block ) { if ( $parent_block && isset( $parent_block->parsed_block['attrs']['layout'] ) ) { $parsed_block['parentLayout'] = $parent_block->parsed_block['attrs']['layout']; } return $parsed_block; } add_filter( 'render_block_data', 'wp_add_parent_layout_to_parsed_block', 10, 3 ); // Register the block support. WP_Block_Supports::get_instance()->register( 'layout', array( 'register_attribute' => 'wp_register_layout_support', ) ); add_filter( 'render_block', 'wp_render_layout_support_flag', 10, 2 ); /** * For themes without theme.json file, make sure * to restore the inner div for the group block * to avoid breaking styles relying on that div. * * @since 5.8.0 * @since 6.6.1 Removed inner container from Grid variations. * @access private * * @param string $block_content Rendered block content. * @param array $block Block object. * @return string Filtered block content. */ function wp_restore_group_inner_container( $block_content, $block ) { $tag_name = $block['attrs']['tagName'] ?? 'div'; $group_with_inner_container_regex = sprintf( '/(^\s*<%1$s\b[^>]*wp-block-group(\s|")[^>]*>)(\s*]*wp-block-group__inner-container(\s|")[^>]*>)((.|\S|\s)*)/U', preg_quote( $tag_name, '/' ) ); if ( wp_theme_has_theme_json() || 1 === preg_match( $group_with_inner_container_regex, $block_content ) || ( isset( $block['attrs']['layout']['type'] ) && ( 'flex' === $block['attrs']['layout']['type'] || 'grid' === $block['attrs']['layout']['type'] ) ) ) { return $block_content; } /* * This filter runs after the layout classnames have been added to the block, so they * have to be removed from the outer wrapper and then added to the inner. */ $layout_classes = array(); $processor = new WP_HTML_Tag_Processor( $block_content ); if ( $processor->next_tag( array( 'class_name' => 'wp-block-group' ) ) ) { foreach ( $processor->class_list() as $class_name ) { if ( str_contains( $class_name, 'is-layout-' ) ) { $layout_classes[] = $class_name; $processor->remove_class( $class_name ); } } } $content_without_layout_classes = $processor->get_updated_html(); $replace_regex = sprintf( '/(^\s*<%1$s\b[^>]*wp-block-group[^>]*>)(.*)(<\/%1$s>\s*$)/ms', preg_quote( $tag_name, '/' ) ); $updated_content = preg_replace_callback( $replace_regex, static function ( $matches ) { return $matches[1] . '
' . $matches[2] . '
' . $matches[3]; }, $content_without_layout_classes ); // Add layout classes to inner wrapper. if ( ! empty( $layout_classes ) ) { $processor = new WP_HTML_Tag_Processor( $updated_content ); if ( $processor->next_tag( array( 'class_name' => 'wp-block-group__inner-container' ) ) ) { foreach ( $layout_classes as $class_name ) { $processor->add_class( $class_name ); } } $updated_content = $processor->get_updated_html(); } return $updated_content; } add_filter( 'render_block_core/group', 'wp_restore_group_inner_container', 10, 2 ); /** * For themes without theme.json file, make sure * to restore the outer div for the aligned image block * to avoid breaking styles relying on that div. * * @since 6.0.0 * @access private * * @param string $block_content Rendered block content. * @param array $block Block object. * @return string Filtered block content. */ function wp_restore_image_outer_container( $block_content, $block ) { if ( wp_theme_has_theme_json() ) { return $block_content; } $figure_processor = new WP_HTML_Tag_Processor( $block_content ); if ( ! $figure_processor->next_tag( 'FIGURE' ) || ! $figure_processor->has_class( 'wp-block-image' ) || ! ( $figure_processor->has_class( 'alignleft' ) || $figure_processor->has_class( 'aligncenter' ) || $figure_processor->has_class( 'alignright' ) ) ) { return $block_content; } /* * The next section of code wraps the existing figure in a new DIV element. * While doing it, it needs to transfer the layout and the additional CSS * class names from the original figure upward to the wrapper. * * Example: * * // From this… * *
… * * // To this… *
… */ $wrapper_processor = new WP_HTML_Tag_Processor( '
' ); $wrapper_processor->next_token(); $wrapper_processor->set_attribute( 'class', is_string( $block['attrs']['className'] ?? null ) ? "wp-block-image {$block['attrs']['className']}" : 'wp-block-image' ); // And remove them from the existing content; it has been transferred upward. $figure_processor->remove_class( 'wp-block-image' ); foreach ( $wrapper_processor->class_list() as $class_name ) { $figure_processor->remove_class( $class_name ); } return "{$wrapper_processor->get_updated_html()}{$figure_processor->get_updated_html()}
"; } add_filter( 'render_block_core/image', 'wp_restore_image_outer_container', 10, 2 ); PKN\{/custom-classname.phpnu[attributes ) { $block_type->attributes = array(); } if ( ! array_key_exists( 'className', $block_type->attributes ) ) { $block_type->attributes['className'] = array( 'type' => 'string', ); } } } /** * Adds the custom classnames to the output. * * @since 5.6.0 * @access private * * @param WP_Block_Type $block_type Block Type. * @param array $block_attributes Block attributes. * * @return array Block CSS classes and inline styles. */ function wp_apply_custom_classname_support( $block_type, $block_attributes ) { $has_custom_classname_support = block_has_support( $block_type, 'customClassName', true ); $attributes = array(); if ( $has_custom_classname_support ) { $has_custom_classnames = array_key_exists( 'className', $block_attributes ); if ( $has_custom_classnames ) { $attributes['class'] = $block_attributes['className']; } } return $attributes; } // Register the block support. WP_Block_Supports::get_instance()->register( 'custom-classname', array( 'register_attribute' => 'wp_register_custom_classname_support', 'apply' => 'wp_apply_custom_classname_support', ) ); PKN\4aria-label.phpnu[attributes ) { $block_type->attributes = array(); } if ( ! array_key_exists( 'ariaLabel', $block_type->attributes ) ) { $block_type->attributes['ariaLabel'] = array( 'type' => 'string', ); } } /** * Add the aria-label to the output. * * @since 6.8.0 * @access private * * @param WP_Block_Type $block_type Block Type. * @param array $block_attributes Block attributes. * * @return array Block aria-label. */ function wp_apply_aria_label_support( $block_type, $block_attributes ) { if ( ! $block_attributes ) { return array(); } $has_aria_label_support = block_has_support( $block_type, array( 'ariaLabel' ), false ); if ( ! $has_aria_label_support || wp_should_skip_block_supports_serialization( $block_type, 'ariaLabel' ) ) { return array(); } $has_aria_label = array_key_exists( 'ariaLabel', $block_attributes ); if ( ! $has_aria_label ) { return array(); } return array( 'aria-label' => $block_attributes['ariaLabel'] ); } // Register the block support. WP_Block_Supports::get_instance()->register( 'aria-label', array( 'register_attribute' => 'wp_register_aria_label_support', 'apply' => 'wp_apply_aria_label_support', ) ); PKN\block-visibility.phpnu[get_registered( $block['blockName'] ); if ( ! $block_type || ! block_has_support( $block_type, 'visibility', true ) ) { return $block_content; } $block_visibility = $block['attrs']['metadata']['blockVisibility'] ?? null; if ( false === $block_visibility ) { return ''; } if ( is_array( $block_visibility ) && ! empty( $block_visibility ) ) { $viewport_config = $block_visibility['viewport'] ?? null; if ( ! is_array( $viewport_config ) || empty( $viewport_config ) ) { return $block_content; } /* * Viewport size definitions are in several places in WordPress packages. * The following are taken from: https://github.com/WordPress/gutenberg/blob/trunk/packages/base-styles/_breakpoints.scss * The array is in a future, potential JSON format, and will be centralized * as the feature is developed. * * Viewport sizes as array items are defined sequentially. The first item's size is the max value. * Each subsequent item starts after the previous size (using > operator), and its size is the max. * The last item starts after the previous size (using > operator), and it has no max. */ $viewport_sizes = array( array( 'name' => 'Mobile', 'slug' => 'mobile', 'size' => '480px', ), array( 'name' => 'Tablet', 'slug' => 'tablet', 'size' => '782px', ), array( 'name' => 'Desktop', 'slug' => 'desktop', /* * Note: the last item in the $viewport_sizes array does not technically require a 'size' key, * as the last item's media query is calculated using `width > previous size`. * The last item is present for validating the attribute values, and in order to indicate * that this is the final viewport size, and to calculate the previous media query accordingly. */ ), ); /* * Build media queries from viewport size definitions using the CSS range syntax. * Could be absorbed into the style engine, * as well as classname building, and declaration of the display property, if required. */ $viewport_media_queries = array(); $previous_size = null; foreach ( $viewport_sizes as $index => $viewport_size ) { // First item: width <= size. if ( 0 === $index ) { $viewport_media_queries[ $viewport_size['slug'] ] = "@media (width <= {$viewport_size['size']})"; } elseif ( count( $viewport_sizes ) - 1 === $index && $previous_size ) { // Last item: width > previous size. $viewport_media_queries[ $viewport_size['slug'] ] = "@media (width > $previous_size)"; } else { // Middle items: previous size < width <= size. $viewport_media_queries[ $viewport_size['slug'] ] = "@media ({$previous_size} < width <= {$viewport_size['size']})"; } $previous_size = $viewport_size['size'] ?? null; } $hidden_on = array(); // Collect which viewport the block is hidden on (only known viewport sizes). foreach ( $viewport_config as $viewport_config_size => $is_visible ) { if ( false === $is_visible && isset( $viewport_media_queries[ $viewport_config_size ] ) ) { $hidden_on[] = $viewport_config_size; } } // If no viewport sizes have visibility set to false, return unchanged. if ( empty( $hidden_on ) ) { return $block_content; } // Maintain consistent order of viewport sizes for class name generation. sort( $hidden_on ); $css_rules = array(); $class_names = array(); foreach ( $hidden_on as $hidden_viewport_size ) { /* * If these values ever become user-defined, * they should be sanitized and kebab-cased. */ $visibility_class = 'wp-block-hidden-' . $hidden_viewport_size; $class_names[] = $visibility_class; $css_rules[] = array( 'selector' => '.' . $visibility_class, 'declarations' => array( 'display' => 'none !important', ), 'rules_group' => $viewport_media_queries[ $hidden_viewport_size ], ); } wp_style_engine_get_stylesheet_from_css_rules( $css_rules, array( 'context' => 'block-supports', 'prettify' => false, ) ); if ( ! empty( $block_content ) ) { $processor = new WP_HTML_Tag_Processor( $block_content ); if ( $processor->next_tag() ) { $processor->add_class( implode( ' ', $class_names ) ); /* * Set all IMG tags to be `fetchpriority=auto` so that wp_get_loading_optimization_attributes() won't add * `fetchpriority=high` or increment the media count to affect whether subsequent IMG tags get `loading=lazy`. */ do { if ( 'IMG' === $processor->get_tag() ) { $processor->set_attribute( 'fetchpriority', 'auto' ); } } while ( $processor->next_tag() ); $block_content = $processor->get_updated_html(); } } } return $block_content; } add_filter( 'render_block', 'wp_render_block_visibility_support', 10, 2 ); PKN\Ӯ%%block-style-variations.phpnu[ &$value ) { // Only need to potentially process arrays. if ( is_array( $value ) ) { // If ref value is set, attempt to find its matching value and update it. if ( array_key_exists( 'ref', $value ) ) { // Clean up any invalid ref value. if ( empty( $value['ref'] ) || ! is_string( $value['ref'] ) ) { unset( $variation_data[ $key ] ); } $value_path = explode( '.', $value['ref'] ?? '' ); $ref_value = _wp_array_get( $theme_json, $value_path ); // Only update the current value if the referenced path matched a value. if ( null === $ref_value ) { unset( $variation_data[ $key ] ); } else { $value = $ref_value; } } else { // Recursively look for ref instances. wp_resolve_block_style_variation_ref_values( $value, $theme_json ); } } } } /** * Renders the block style variation's styles. * * In the case of nested blocks with variations applied, we want the parent * variation's styles to be rendered before their descendants. This solves the * issue of a block type being styled in both the parent and descendant: we want * the descendant style to take priority, and this is done by loading it after, * in the DOM order. This is why the variation stylesheet generation is in a * different filter. * * @since 6.6.0 * @access private * * @param array $parsed_block The parsed block. * * @return array The parsed block with block style variation classname added. */ function wp_render_block_style_variation_support_styles( $parsed_block ) { $classes = $parsed_block['attrs']['className'] ?? null; $variations = wp_get_block_style_variation_name_from_class( $classes ); if ( ! $variations ) { return $parsed_block; } $tree = WP_Theme_JSON_Resolver::get_merged_data(); $theme_json = $tree->get_raw_data(); // Only the first block style variation with data is supported. $variation_data = array(); foreach ( $variations as $variation ) { $variation_data = $theme_json['styles']['blocks'][ $parsed_block['blockName'] ]['variations'][ $variation ] ?? array(); if ( ! empty( $variation_data ) ) { break; } } if ( empty( $variation_data ) ) { return $parsed_block; } /* * Recursively resolve any ref values with the appropriate value within the * theme_json data. */ wp_resolve_block_style_variation_ref_values( $variation_data, $theme_json ); $variation_instance = wp_unique_id( $variation . '--' ); $class_name = "is-style-$variation_instance"; $updated_class_name = $parsed_block['attrs']['className'] . " $class_name"; /* * Even though block style variations are effectively theme.json partials, * they can't be processed completely as though they are. * * Block styles support custom selectors to direct specific types of styles * to inner elements. For example, borders on Image block's get applied to * the inner `img` element rather than the wrapping `figure`. * * The following relocates the "root" block style variation styles to * under an appropriate blocks property to leverage the preexisting style * generation for simple block style variations. This way they get the * custom selectors they need. * * The inner elements and block styles for the variation itself are * still included at the top level but scoped by the variation's selector * when the stylesheet is generated. */ $elements_data = $variation_data['elements'] ?? array(); $blocks_data = $variation_data['blocks'] ?? array(); unset( $variation_data['elements'] ); unset( $variation_data['blocks'] ); _wp_array_set( $blocks_data, array( $parsed_block['blockName'], 'variations', $variation_instance ), $variation_data ); $config = array( 'version' => WP_Theme_JSON::LATEST_SCHEMA, 'settings' => array( 'spacing' => array( 'blockGap' => true, ), ), 'styles' => array( 'elements' => $elements_data, 'blocks' => $blocks_data, ), ); // Turn off filter that excludes block nodes. They are needed here for the variation's inner block types. if ( ! is_admin() ) { remove_filter( 'wp_theme_json_get_style_nodes', 'wp_filter_out_block_nodes' ); } // Temporarily prevent variation instance from being sanitized while processing theme.json. $styles_registry = WP_Block_Styles_Registry::get_instance(); $styles_registry->register( $parsed_block['blockName'], array( 'name' => $variation_instance ) ); $variation_theme_json = new WP_Theme_JSON( $config, 'blocks' ); $variation_styles = $variation_theme_json->get_stylesheet( array( 'styles' ), array( 'custom' ), array( 'include_block_style_variations' => true, 'skip_root_layout_styles' => true, 'scope' => ".$class_name", ) ); // Clean up temporary block style now instance styles have been processed. $styles_registry->unregister( $parsed_block['blockName'], $variation_instance ); // Restore filter that excludes block nodes. if ( ! is_admin() ) { add_filter( 'wp_theme_json_get_style_nodes', 'wp_filter_out_block_nodes' ); } if ( empty( $variation_styles ) ) { return $parsed_block; } wp_register_style( 'block-style-variation-styles', false, array( 'wp-block-library', 'global-styles' ) ); wp_add_inline_style( 'block-style-variation-styles', $variation_styles ); /* * Add variation instance class name to block's className string so it can * be enforced in the block markup via render_block filter. */ _wp_array_set( $parsed_block, array( 'attrs', 'className' ), $updated_class_name ); return $parsed_block; } /** * Ensures the variation block support class name generated and added to * block attributes in the `render_block_data` filter gets applied to the * block's markup. * * @since 6.6.0 * @access private * * @see wp_render_block_style_variation_support_styles * * @param string $block_content Rendered block content. * @param array $block Block object. * * @return string Filtered block content. */ function wp_render_block_style_variation_class_name( $block_content, $block ) { if ( ! $block_content || empty( $block['attrs']['className'] ) ) { return $block_content; } /* * Matches a class prefixed by `is-style`, followed by the * variation slug, then `--`, and finally an instance number. */ preg_match( '/\bis-style-(\S+?--\d+)\b/', $block['attrs']['className'], $matches ); if ( empty( $matches ) ) { return $block_content; } $tags = new WP_HTML_Tag_Processor( $block_content ); if ( $tags->next_tag() ) { /* * Ensure the variation instance class name set in the * `render_block_data` filter is applied in markup. * See `wp_render_block_style_variation_support_styles`. */ $tags->add_class( $matches[0] ); } return $tags->get_updated_html(); } /** * Enqueues styles for block style variations. * * @since 6.6.0 * @access private */ function wp_enqueue_block_style_variation_styles() { wp_enqueue_style( 'block-style-variation-styles' ); } // Register the block support. WP_Block_Supports::get_instance()->register( 'block-style-variation', array() ); add_filter( 'render_block_data', 'wp_render_block_style_variation_support_styles', 10, 2 ); add_filter( 'render_block', 'wp_render_block_style_variation_class_name', 10, 2 ); add_action( 'wp_enqueue_scripts', 'wp_enqueue_block_style_variation_styles', 1 ); /** * Registers block style variations read in from theme.json partials. * * @since 6.6.0 * @access private * * @param array $variations Shared block style variations. */ function wp_register_block_style_variations_from_theme_json_partials( $variations ) { if ( empty( $variations ) ) { return; } $registry = WP_Block_Styles_Registry::get_instance(); foreach ( $variations as $variation ) { if ( empty( $variation['blockTypes'] ) || empty( $variation['styles'] ) ) { continue; } $variation_name = $variation['slug'] ?? _wp_to_kebab_case( $variation['title'] ); $variation_label = $variation['title'] ?? $variation_name; foreach ( $variation['blockTypes'] as $block_type ) { $registered_styles = $registry->get_registered_styles_for_block( $block_type ); // Register block style variation if it hasn't already been registered. if ( ! array_key_exists( $variation_name, $registered_styles ) ) { register_block_style( $block_type, array( 'name' => $variation_name, 'label' => $variation_label, ) ); } } } } PKN\7 error_lognu[[16-Apr-2026 16:27:39 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [16-Apr-2026 16:28:08 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [16-Apr-2026 16:28:19 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [16-Apr-2026 23:19:57 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [16-Apr-2026 23:20:24 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [16-Apr-2026 23:28:14 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 02:03:46 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 02:03:48 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 02:03:50 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 02:03:56 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 02:04:00 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 02:04:02 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 02:04:06 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 02:04:09 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 02:04:13 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 02:04:17 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 02:51:58 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 02:52:01 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 02:52:15 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 02:52:17 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 02:52:18 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 02:52:21 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 02:52:23 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 02:52:25 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 02:52:26 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 03:40:03 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 03:40:04 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 03:40:05 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 03:40:08 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 03:40:11 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 03:40:42 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 03:40:43 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 03:40:45 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 03:45:46 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 03:45:47 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 03:45:49 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 03:45:50 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 03:45:51 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 03:45:52 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 03:45:53 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 03:45:55 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 03:45:56 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 03:52:40 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 03:52:41 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 03:52:43 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 03:52:45 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 03:52:47 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 03:52:47 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 03:52:48 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 03:52:50 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 03:52:51 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 05:09:59 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 05:10:00 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 05:10:01 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 05:10:02 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 05:10:04 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 05:10:05 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 05:10:06 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 05:10:08 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 06:44:07 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 06:44:37 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 06:44:38 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 06:44:39 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 06:47:11 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 06:47:32 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 06:47:34 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 06:47:35 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 06:47:37 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 06:47:39 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 06:47:42 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 06:47:44 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 06:47:45 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 06:47:45 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 06:57:43 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 06:57:45 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 06:57:46 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 06:57:46 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 06:57:47 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 06:57:48 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 06:57:49 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 06:57:49 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 06:57:51 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 06:57:52 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 10:45:29 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 10:45:37 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 10:45:52 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 10:46:01 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 10:46:06 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 10:46:25 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 11:00:47 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 11:00:48 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 11:00:50 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 11:00:54 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 11:01:21 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 11:01:34 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 16:10:24 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 16:10:39 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 16:10:41 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 16:10:43 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 16:10:46 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 16:10:50 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 16:10:52 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 16:11:00 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 16:11:09 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 16:14:02 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 16:14:06 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:10:18 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:10:30 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:10:35 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:10:38 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:10:40 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:10:46 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:10:52 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:10:54 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:10:59 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:11:07 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:11:15 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 17:31:54 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 17:32:04 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 17:32:07 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 17:32:10 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 17:32:14 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 17:32:21 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 17:32:31 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 17:32:34 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 17:32:35 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 17:32:42 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [17-Apr-2026 21:40:27 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 21:40:38 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 21:40:59 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 21:41:28 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-Apr-2026 21:46:26 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 21:46:40 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 21:46:52 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 21:46:55 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [17-Apr-2026 21:47:33 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 02:15:24 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 02:15:27 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 02:15:34 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 02:15:46 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 02:16:01 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:11:25 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:11:28 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:11:52 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:12:10 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:12:17 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:12:32 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:36:00 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [18-Apr-2026 08:36:10 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [18-Apr-2026 08:36:45 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [18-Apr-2026 08:36:48 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [18-Apr-2026 08:36:59 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [18-Apr-2026 08:49:45 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:49:53 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:50:01 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:50:12 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:50:21 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:50:26 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:50:30 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:50:34 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 08:50:45 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 16:53:34 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 16:53:39 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 16:53:44 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 16:53:46 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 16:53:50 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 16:54:29 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 16:54:32 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 16:54:35 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 17:32:01 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-Apr-2026 17:34:26 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [18-Apr-2026 17:34:31 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [18-Apr-2026 17:34:47 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [18-Apr-2026 17:35:05 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [18-Apr-2026 17:35:29 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [18-Apr-2026 21:39:53 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 21:40:05 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 21:40:22 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-Apr-2026 21:40:36 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-Apr-2026 01:22:15 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 01:22:21 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 01:23:09 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 01:23:34 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 01:28:36 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 01:28:40 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 01:29:05 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 01:29:17 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 01:29:21 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 01:29:26 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 06:49:07 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 06:49:38 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 06:49:48 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 06:50:07 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 10:58:11 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 10:58:15 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 10:58:20 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 10:58:41 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 11:09:13 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 11:09:14 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 11:09:42 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 11:09:44 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 11:10:10 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 11:28:54 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-Apr-2026 11:29:12 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-Apr-2026 11:29:28 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-Apr-2026 11:29:35 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-Apr-2026 11:29:46 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-Apr-2026 11:29:47 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-Apr-2026 11:30:05 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-Apr-2026 11:37:54 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 11:38:29 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 11:38:35 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 11:38:37 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 11:38:41 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 11:38:57 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 11:39:19 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 21:31:13 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 21:31:18 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 21:31:23 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 21:31:44 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 21:32:13 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-Apr-2026 22:39:36 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-Apr-2026 22:40:22 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 02:18:44 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 02:19:01 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 02:19:12 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 02:19:32 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 03:48:18 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 03:49:16 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 07:57:21 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 07:57:59 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 07:58:12 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 07:58:23 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 08:23:49 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 08:24:04 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 08:24:14 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 08:24:21 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 08:24:44 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 08:24:49 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 08:31:40 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 08:31:46 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 08:32:27 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 08:32:37 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 08:32:44 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 13:03:57 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 13:04:06 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 13:04:23 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 13:04:34 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 13:04:38 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 14:15:24 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 14:15:26 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 14:15:28 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 14:15:30 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 14:15:31 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 14:15:33 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [20-Apr-2026 14:19:31 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 14:19:33 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 14:19:35 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 14:19:36 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 14:19:37 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 14:19:38 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [20-Apr-2026 14:31:26 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 14:31:28 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 14:31:33 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 14:31:33 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 14:31:35 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 18:16:09 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 18:16:55 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [20-Apr-2026 22:10:03 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 04:25:21 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [21-Apr-2026 04:25:38 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [21-Apr-2026 04:25:51 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [21-Apr-2026 04:28:50 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 04:29:04 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 04:29:11 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 04:29:25 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 04:38:51 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 04:38:57 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 04:39:09 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 04:39:16 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 08:04:15 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 08:04:50 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 08:07:02 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 08:07:38 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 09:08:53 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 09:09:08 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 09:09:14 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 09:09:22 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 13:38:36 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 14:02:31 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 15:57:36 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [21-Apr-2026 15:57:37 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [21-Apr-2026 15:57:38 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [21-Apr-2026 15:57:39 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [21-Apr-2026 15:57:40 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [21-Apr-2026 15:57:41 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [21-Apr-2026 15:58:37 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 15:58:38 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 15:58:40 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 15:58:40 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 15:58:41 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 15:58:42 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [21-Apr-2026 15:59:14 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 15:59:21 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 15:59:22 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 15:59:25 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 15:59:27 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-Apr-2026 15:59:28 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 00:17:18 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 00:17:26 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 00:17:39 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 00:21:19 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 00:21:28 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 00:21:34 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 00:21:43 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 00:21:47 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 00:30:46 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [22-Apr-2026 00:30:53 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [22-Apr-2026 00:30:59 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [22-Apr-2026 04:16:54 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [22-Apr-2026 04:43:13 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 04:43:34 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 04:43:44 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 04:44:01 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 05:11:06 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 05:11:13 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 05:11:21 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 05:11:27 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 05:38:14 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 05:38:21 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 05:38:25 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 05:38:27 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 05:38:30 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-Apr-2026 06:12:31 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 06:12:32 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 06:12:33 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 06:12:35 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 06:12:36 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [22-Apr-2026 06:16:27 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [22-Apr-2026 06:16:28 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [22-Apr-2026 06:16:29 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [22-Apr-2026 06:16:30 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [27-Apr-2026 10:11:37 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [27-Apr-2026 10:11:51 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [27-Apr-2026 10:11:54 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [27-Apr-2026 10:11:56 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [27-Apr-2026 10:12:00 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [27-Apr-2026 10:13:39 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [27-Apr-2026 10:13:41 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [27-Apr-2026 10:13:43 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [27-Apr-2026 10:13:44 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [27-Apr-2026 10:13:45 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [27-Apr-2026 10:13:47 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [27-Apr-2026 10:35:44 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [27-Apr-2026 10:35:46 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [27-Apr-2026 10:35:47 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [27-Apr-2026 10:35:48 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [27-Apr-2026 10:35:50 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [27-Apr-2026 10:35:51 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [27-Apr-2026 15:24:18 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [27-Apr-2026 15:24:22 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [27-Apr-2026 15:24:39 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [27-Apr-2026 19:34:56 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [27-Apr-2026 20:02:49 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [27-Apr-2026 20:19:04 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [27-Apr-2026 23:52:58 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [28-Apr-2026 00:25:27 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [28-Apr-2026 00:25:28 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [28-Apr-2026 00:51:40 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [28-Apr-2026 00:52:01 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [28-Apr-2026 00:52:22 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [28-Apr-2026 00:52:23 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [28-Apr-2026 00:52:34 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [28-Apr-2026 04:47:28 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [28-Apr-2026 06:16:24 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [28-Apr-2026 11:12:09 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [28-Apr-2026 11:18:16 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [28-Apr-2026 16:34:09 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [28-Apr-2026 16:34:20 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [28-Apr-2026 20:31:46 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [28-Apr-2026 20:56:02 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [28-Apr-2026 20:56:36 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [28-Apr-2026 20:56:49 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [28-Apr-2026 21:19:35 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [28-Apr-2026 22:04:29 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [28-Apr-2026 22:04:41 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [28-Apr-2026 22:04:43 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [29-Apr-2026 02:43:39 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [29-Apr-2026 11:20:19 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [29-Apr-2026 11:29:50 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [29-Apr-2026 15:53:12 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [29-Apr-2026 15:53:23 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [29-Apr-2026 15:53:36 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [29-Apr-2026 15:53:43 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [29-Apr-2026 16:04:06 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [29-Apr-2026 16:04:12 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [29-Apr-2026 16:04:20 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [29-Apr-2026 16:04:27 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [30-Apr-2026 11:51:59 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [30-Apr-2026 11:52:29 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [30-Apr-2026 12:11:59 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [03-May-2026 07:32:33 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [05-May-2026 11:04:06 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [05-May-2026 11:04:19 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [05-May-2026 11:05:03 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [16-May-2026 02:40:35 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [16-May-2026 02:42:02 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-May-2026 08:44:35 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-May-2026 08:44:59 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-May-2026 08:45:13 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [17-May-2026 08:45:23 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-May-2026 02:51:45 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-May-2026 02:52:51 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-May-2026 08:04:30 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [18-May-2026 08:42:46 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [18-May-2026 08:43:35 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [19-May-2026 14:31:33 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-May-2026 14:33:14 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-May-2026 14:48:17 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-May-2026 14:48:47 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [19-May-2026 20:43:33 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [19-May-2026 20:44:08 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:164 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 164 [21-May-2026 23:05:47 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-May-2026 23:25:49 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [22-May-2026 23:27:14 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [24-May-2026 05:28:37 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [24-May-2026 05:49:59 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:167 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 167 [24-May-2026 05:51:11 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:167 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 167 [24-May-2026 11:08:37 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [24-May-2026 11:10:10 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [24-May-2026 23:38:26 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [25-May-2026 11:51:58 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [25-May-2026 11:52:54 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [25-May-2026 17:14:24 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/colors.php:138 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/colors.php on line 138 [30-May-2026 11:08:58 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [30-May-2026 11:09:39 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [30-May-2026 22:07:51 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:167 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 167 [30-May-2026 22:10:06 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php:167 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/dimensions.php on line 167 [31-May-2026 07:50:49 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 [31-May-2026 07:52:25 UTC] PHP Fatal error: Uncaught Error: Class "WP_Block_Supports" not found in /home/blacotuu/public_html/wp-includes/block-supports/position.php:145 Stack trace: #0 {main} thrown in /home/blacotuu/public_html/wp-includes/block-supports/position.php on line 145 PKN\b colors.phpnu[supports['color'] ?? false; } $has_text_colors_support = true === $color_support || ( isset( $color_support['text'] ) && $color_support['text'] ) || ( is_array( $color_support ) && ! isset( $color_support['text'] ) ); $has_background_colors_support = true === $color_support || ( isset( $color_support['background'] ) && $color_support['background'] ) || ( is_array( $color_support ) && ! isset( $color_support['background'] ) ); $has_gradients_support = $color_support['gradients'] ?? false; $has_link_colors_support = $color_support['link'] ?? false; $has_button_colors_support = $color_support['button'] ?? false; $has_heading_colors_support = $color_support['heading'] ?? false; $has_color_support = $has_text_colors_support || $has_background_colors_support || $has_gradients_support || $has_link_colors_support || $has_button_colors_support || $has_heading_colors_support; if ( ! $block_type->attributes ) { $block_type->attributes = array(); } if ( $has_color_support && ! array_key_exists( 'style', $block_type->attributes ) ) { $block_type->attributes['style'] = array( 'type' => 'object', ); } if ( $has_background_colors_support && ! array_key_exists( 'backgroundColor', $block_type->attributes ) ) { $block_type->attributes['backgroundColor'] = array( 'type' => 'string', ); } if ( $has_text_colors_support && ! array_key_exists( 'textColor', $block_type->attributes ) ) { $block_type->attributes['textColor'] = array( 'type' => 'string', ); } if ( $has_gradients_support && ! array_key_exists( 'gradient', $block_type->attributes ) ) { $block_type->attributes['gradient'] = array( 'type' => 'string', ); } } /** * Adds CSS classes and inline styles for colors to the incoming attributes array. * This will be applied to the block markup in the front-end. * * @since 5.6.0 * @since 6.1.0 Implemented the style engine to generate CSS and classnames. * @access private * * @param WP_Block_Type $block_type Block type. * @param array $block_attributes Block attributes. * * @return array Colors CSS classes and inline styles. */ function wp_apply_colors_support( $block_type, $block_attributes ) { $color_support = $block_type->supports['color'] ?? false; if ( is_array( $color_support ) && wp_should_skip_block_supports_serialization( $block_type, 'color' ) ) { return array(); } $has_text_colors_support = true === $color_support || ( isset( $color_support['text'] ) && $color_support['text'] ) || ( is_array( $color_support ) && ! isset( $color_support['text'] ) ); $has_background_colors_support = true === $color_support || ( isset( $color_support['background'] ) && $color_support['background'] ) || ( is_array( $color_support ) && ! isset( $color_support['background'] ) ); $has_gradients_support = $color_support['gradients'] ?? false; $color_block_styles = array(); // Text colors. if ( $has_text_colors_support && ! wp_should_skip_block_supports_serialization( $block_type, 'color', 'text' ) ) { $preset_text_color = array_key_exists( 'textColor', $block_attributes ) ? "var:preset|color|{$block_attributes['textColor']}" : null; $custom_text_color = $block_attributes['style']['color']['text'] ?? null; $color_block_styles['text'] = $preset_text_color ? $preset_text_color : $custom_text_color; } // Background colors. if ( $has_background_colors_support && ! wp_should_skip_block_supports_serialization( $block_type, 'color', 'background' ) ) { $preset_background_color = array_key_exists( 'backgroundColor', $block_attributes ) ? "var:preset|color|{$block_attributes['backgroundColor']}" : null; $custom_background_color = $block_attributes['style']['color']['background'] ?? null; $color_block_styles['background'] = $preset_background_color ? $preset_background_color : $custom_background_color; } // Gradients. if ( $has_gradients_support && ! wp_should_skip_block_supports_serialization( $block_type, 'color', 'gradients' ) ) { $preset_gradient_color = array_key_exists( 'gradient', $block_attributes ) ? "var:preset|gradient|{$block_attributes['gradient']}" : null; $custom_gradient_color = $block_attributes['style']['color']['gradient'] ?? null; $color_block_styles['gradient'] = $preset_gradient_color ? $preset_gradient_color : $custom_gradient_color; } $attributes = array(); $styles = wp_style_engine_get_styles( array( 'color' => $color_block_styles ), array( 'convert_vars_to_classnames' => true ) ); if ( ! empty( $styles['classnames'] ) ) { $attributes['class'] = $styles['classnames']; } if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } // Register the block support. WP_Block_Supports::get_instance()->register( 'colors', array( 'register_attribute' => 'wp_register_colors_support', 'apply' => 'wp_apply_colors_support', ) ); PKN\U utils.phpnu[supports, $path, false ); if ( is_array( $skip_serialization ) ) { return in_array( $feature, $skip_serialization, true ); } return $skip_serialization; } PKN\]@generated-classname.phpnu[name ); if ( $block_classname ) { $attributes['class'] = $block_classname; } } return $attributes; } // Register the block support. WP_Block_Supports::get_instance()->register( 'generated-classname', array( 'apply' => 'wp_apply_generated_classname_support', ) ); PKN\1 settings.phpnu[get_registered( $block['blockName'] ); if ( ! block_has_support( $block_type, '__experimentalSettings', false ) ) { return $block_content; } // return early if no settings are found on the block attributes. $block_settings = $block['attrs']['settings'] ?? null; if ( empty( $block_settings ) ) { return $block_content; } // Like the layout hook this assumes the hook only applies to blocks with a single wrapper. // Add the class name to the first element, presuming it's the wrapper, if it exists. $tags = new WP_HTML_Tag_Processor( $block_content ); if ( $tags->next_tag() ) { $tags->add_class( _wp_get_presets_class_name( $block ) ); } return $tags->get_updated_html(); } /** * Render the block level presets stylesheet. * * @internal * * @since 6.2.0 * @since 6.3.0 Updated preset styles to use Selectors API. * @access private * * @param string|null $pre_render The pre-rendered content. Default null. * @param array $block The block being rendered. * * @return null */ function _wp_add_block_level_preset_styles( $pre_render, $block ) { // Return early if the block has not support for descendent block styles. $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] ); if ( ! block_has_support( $block_type, '__experimentalSettings', false ) ) { return null; } // return early if no settings are found on the block attributes. $block_settings = $block['attrs']['settings'] ?? null; if ( empty( $block_settings ) ) { return null; } $class_name = '.' . _wp_get_presets_class_name( $block ); // the root selector for preset variables needs to target every possible block selector // in order for the general setting to override any bock specific setting of a parent block or // the site root. $variables_root_selector = '*,[class*="wp-block"]'; $registry = WP_Block_Type_Registry::get_instance(); $blocks = $registry->get_all_registered(); foreach ( $blocks as $block_type ) { /* * We only want to append selectors for blocks using custom selectors * i.e. not `wp-block-`. */ $has_custom_selector = ( isset( $block_type->supports['__experimentalSelector'] ) && is_string( $block_type->supports['__experimentalSelector'] ) ) || ( isset( $block_type->selectors['root'] ) && is_string( $block_type->selectors['root'] ) ); if ( $has_custom_selector ) { $variables_root_selector .= ',' . wp_get_block_css_selector( $block_type ); } } $variables_root_selector = WP_Theme_JSON::scope_selector( $class_name, $variables_root_selector ); // Remove any potentially unsafe styles. $theme_json_shape = WP_Theme_JSON::remove_insecure_properties( array( 'version' => WP_Theme_JSON::LATEST_SCHEMA, 'settings' => $block_settings, ) ); $theme_json_object = new WP_Theme_JSON( $theme_json_shape ); $styles = ''; // include preset css variables declaration on the stylesheet. $styles .= $theme_json_object->get_stylesheet( array( 'variables' ), null, array( 'root_selector' => $variables_root_selector, 'scope' => $class_name, ) ); // include preset css classes on the the stylesheet. $styles .= $theme_json_object->get_stylesheet( array( 'presets' ), null, array( 'root_selector' => $class_name . ',' . $class_name . ' *', 'scope' => $class_name, ) ); if ( ! empty( $styles ) ) { wp_enqueue_block_support_styles( $styles ); } return null; } add_filter( 'render_block', '_wp_add_block_level_presets_class', 10, 2 ); add_filter( 'pre_render_block', '_wp_add_block_level_preset_styles', 10, 2 ); PKN\L spacing.phpnu[attributes ) { $block_type->attributes = array(); } if ( $has_spacing_support && ! array_key_exists( 'style', $block_type->attributes ) ) { $block_type->attributes['style'] = array( 'type' => 'object', ); } } /** * Adds CSS classes for block spacing to the incoming attributes array. * This will be applied to the block markup in the front-end. * * @since 5.8.0 * @since 6.1.0 Implemented the style engine to generate CSS and classnames. * @access private * * @param WP_Block_Type $block_type Block Type. * @param array $block_attributes Block attributes. * @return array Block spacing CSS classes and inline styles. */ function wp_apply_spacing_support( $block_type, $block_attributes ) { if ( wp_should_skip_block_supports_serialization( $block_type, 'spacing' ) ) { return array(); } $attributes = array(); $has_padding_support = block_has_support( $block_type, array( 'spacing', 'padding' ), false ); $has_margin_support = block_has_support( $block_type, array( 'spacing', 'margin' ), false ); $block_styles = $block_attributes['style'] ?? null; if ( ! $block_styles ) { return $attributes; } $skip_padding = wp_should_skip_block_supports_serialization( $block_type, 'spacing', 'padding' ); $skip_margin = wp_should_skip_block_supports_serialization( $block_type, 'spacing', 'margin' ); $spacing_block_styles = array( 'padding' => null, 'margin' => null, ); if ( $has_padding_support && ! $skip_padding ) { $spacing_block_styles['padding'] = $block_styles['spacing']['padding'] ?? null; } if ( $has_margin_support && ! $skip_margin ) { $spacing_block_styles['margin'] = $block_styles['spacing']['margin'] ?? null; } $styles = wp_style_engine_get_styles( array( 'spacing' => $spacing_block_styles ) ); if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } // Register the block support. WP_Block_Supports::get_instance()->register( 'spacing', array( 'register_attribute' => 'wp_register_spacing_support', 'apply' => 'wp_apply_spacing_support', ) ); PKN\򝛀 elements.phpnu[ array( 'skip' => $options['button']['skip'] ?? false, 'paths' => array( array( 'button', 'color', 'text' ), array( 'button', 'color', 'background' ), array( 'button', 'color', 'gradient' ), ), ), 'link' => array( 'skip' => $options['link']['skip'] ?? false, 'paths' => array( array( 'link', 'color', 'text' ), array( 'link', ':hover', 'color', 'text' ), ), ), 'heading' => array( 'skip' => $options['heading']['skip'] ?? false, 'paths' => array( array( 'heading', 'color', 'text' ), array( 'heading', 'color', 'background' ), array( 'heading', 'color', 'gradient' ), array( 'h1', 'color', 'text' ), array( 'h1', 'color', 'background' ), array( 'h1', 'color', 'gradient' ), array( 'h2', 'color', 'text' ), array( 'h2', 'color', 'background' ), array( 'h2', 'color', 'gradient' ), array( 'h3', 'color', 'text' ), array( 'h3', 'color', 'background' ), array( 'h3', 'color', 'gradient' ), array( 'h4', 'color', 'text' ), array( 'h4', 'color', 'background' ), array( 'h4', 'color', 'gradient' ), array( 'h5', 'color', 'text' ), array( 'h5', 'color', 'background' ), array( 'h5', 'color', 'gradient' ), array( 'h6', 'color', 'text' ), array( 'h6', 'color', 'background' ), array( 'h6', 'color', 'gradient' ), ), ), ); $elements_style_attributes = $block['attrs']['style']['elements']; foreach ( $element_color_properties as $element_config ) { if ( $element_config['skip'] ) { continue; } foreach ( $element_config['paths'] as $path ) { if ( null !== _wp_array_get( $elements_style_attributes, $path, null ) ) { return true; } } } return false; } /** * Render the elements stylesheet and adds elements class name to block as required. * * In the case of nested blocks we want the parent element styles to be rendered before their descendants. * This solves the issue of an element (e.g.: link color) being styled in both the parent and a descendant: * we want the descendant style to take priority, and this is done by loading it after, in DOM order. * * @since 6.0.0 * @since 6.1.0 Implemented the style engine to generate CSS and classnames. * @since 6.6.0 Element block support class and styles are generated via the `render_block_data` filter instead of `pre_render_block`. * @access private * * @param array $parsed_block The parsed block. * @return array The same parsed block with elements classname added if appropriate. */ function wp_render_elements_support_styles( $parsed_block ) { /* * The generation of element styles and classname were moved to the * `render_block_data` filter in 6.6.0 to avoid filtered attributes * breaking the application of the elements CSS class. * * @link https://github.com/WordPress/gutenberg/pull/59535 * * The change in filter means, the argument types for this function * have changed and require deprecating. */ if ( is_string( $parsed_block ) ) { _deprecated_argument( __FUNCTION__, '6.6.0', __( 'Use as a `pre_render_block` filter is deprecated. Use with `render_block_data` instead.' ) ); } $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $parsed_block['blockName'] ); $element_block_styles = $parsed_block['attrs']['style']['elements'] ?? null; if ( ! $element_block_styles ) { return $parsed_block; } $skip_link_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'link' ); $skip_heading_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'heading' ); $skip_button_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'button' ); $skips_all_element_color_serialization = $skip_link_color_serialization && $skip_heading_color_serialization && $skip_button_color_serialization; if ( $skips_all_element_color_serialization ) { return $parsed_block; } $options = array( 'button' => array( 'skip' => $skip_button_color_serialization ), 'link' => array( 'skip' => $skip_link_color_serialization ), 'heading' => array( 'skip' => $skip_heading_color_serialization ), ); if ( ! wp_should_add_elements_class_name( $parsed_block, $options ) ) { return $parsed_block; } $class_name = wp_get_elements_class_name( $parsed_block ); $updated_class_name = isset( $parsed_block['attrs']['className'] ) ? $parsed_block['attrs']['className'] . " $class_name" : $class_name; _wp_array_set( $parsed_block, array( 'attrs', 'className' ), $updated_class_name ); // Generate element styles based on selector and store in style engine for enqueuing. $element_types = array( 'button' => array( 'selector' => ".$class_name .wp-element-button, .$class_name .wp-block-button__link", 'skip' => $skip_button_color_serialization, ), 'link' => array( 'selector' => ".$class_name a:where(:not(.wp-element-button))", 'hover_selector' => ".$class_name a:where(:not(.wp-element-button)):hover", 'skip' => $skip_link_color_serialization, ), 'heading' => array( 'selector' => ".$class_name h1, .$class_name h2, .$class_name h3, .$class_name h4, .$class_name h5, .$class_name h6", 'skip' => $skip_heading_color_serialization, 'elements' => array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ), ), ); foreach ( $element_types as $element_type => $element_config ) { if ( $element_config['skip'] ) { continue; } $element_style_object = $element_block_styles[ $element_type ] ?? null; // Process primary element type styles. if ( $element_style_object ) { wp_style_engine_get_styles( $element_style_object, array( 'selector' => $element_config['selector'], 'context' => 'block-supports', ) ); if ( isset( $element_style_object[':hover'] ) ) { wp_style_engine_get_styles( $element_style_object[':hover'], array( 'selector' => $element_config['hover_selector'], 'context' => 'block-supports', ) ); } } // Process related elements e.g. h1-h6 for headings. if ( isset( $element_config['elements'] ) ) { foreach ( $element_config['elements'] as $element ) { $element_style_object = $element_block_styles[ $element ] ?? null; if ( $element_style_object ) { wp_style_engine_get_styles( $element_style_object, array( 'selector' => ".$class_name $element", 'context' => 'block-supports', ) ); } } } } return $parsed_block; } /** * Ensure the elements block support class name generated, and added to * block attributes, in the `render_block_data` filter gets applied to the * block's markup. * * @see wp_render_elements_support_styles * @since 6.6.0 * * @param string $block_content Rendered block content. * @param array $block Block object. * @return string Filtered block content. */ function wp_render_elements_class_name( $block_content, $block ) { $class_string = $block['attrs']['className'] ?? ''; preg_match( '/\bwp-elements-\S+\b/', $class_string, $matches ); if ( empty( $matches ) ) { return $block_content; } $tags = new WP_HTML_Tag_Processor( $block_content ); if ( $tags->next_tag() ) { $tags->add_class( $matches[0] ); } return $tags->get_updated_html(); } add_filter( 'render_block', 'wp_render_elements_class_name', 10, 2 ); add_filter( 'render_block_data', 'wp_render_elements_support_styles', 10, 1 ); PKN\ \dimensions.phpnu[attributes ) { $block_type->attributes = array(); } // Check for existing style attribute definition e.g. from block.json. if ( array_key_exists( 'style', $block_type->attributes ) ) { return; } $has_dimensions_support = block_has_support( $block_type, 'dimensions', false ); if ( $has_dimensions_support ) { $block_type->attributes['style'] = array( 'type' => 'object', ); } } /** * Adds CSS classes for block dimensions to the incoming attributes array. * This will be applied to the block markup in the front-end. * * @since 5.9.0 * @since 6.2.0 Added `minHeight` support. * @access private * * @param WP_Block_Type $block_type Block Type. * @param array $block_attributes Block attributes. * @return array Block dimensions CSS classes and inline styles. */ function wp_apply_dimensions_support( $block_type, $block_attributes ) { $attributes = array(); if ( wp_should_skip_block_supports_serialization( $block_type, 'dimensions' ) ) { return $attributes; } $block_styles = $block_attributes['style'] ?? null; if ( ! $block_styles ) { return $attributes; } $dimensions_block_styles = array(); $supported_features = array( 'minHeight', 'height', 'width' ); foreach ( $supported_features as $feature ) { $has_support = block_has_support( $block_type, array( 'dimensions', $feature ), false ); $skip_serialization = wp_should_skip_block_supports_serialization( $block_type, 'dimensions', $feature ); $dimensions_block_styles[ $feature ] = null; if ( $has_support && ! $skip_serialization ) { $dimensions_block_styles[ $feature ] = $block_styles['dimensions'][ $feature ] ?? null; } } $styles = wp_style_engine_get_styles( array( 'dimensions' => $dimensions_block_styles ) ); if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } /** * Renders server-side dimensions styles to the block wrapper. * This block support uses the `render_block` hook to ensure that * it is also applied to non-server-rendered blocks. * * @since 6.5.0 * @access private * * @param string $block_content Rendered block content. * @param array $block Block object. * @return string Filtered block content. */ function wp_render_dimensions_support( $block_content, $block ) { $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] ); $block_attributes = ( isset( $block['attrs'] ) && is_array( $block['attrs'] ) ) ? $block['attrs'] : array(); $has_aspect_ratio_support = block_has_support( $block_type, array( 'dimensions', 'aspectRatio' ), false ); if ( ! $has_aspect_ratio_support || wp_should_skip_block_supports_serialization( $block_type, 'dimensions', 'aspectRatio' ) ) { return $block_content; } $dimensions_block_styles = array(); $dimensions_block_styles['aspectRatio'] = $block_attributes['style']['dimensions']['aspectRatio'] ?? null; // To ensure the aspect ratio does not get overridden by `minHeight` unset any existing rule. if ( isset( $dimensions_block_styles['aspectRatio'] ) ) { $dimensions_block_styles['minHeight'] = 'unset'; } elseif ( isset( $block_attributes['style']['dimensions']['minHeight'] ) || isset( $block_attributes['minHeight'] ) ) { $dimensions_block_styles['aspectRatio'] = 'unset'; } $styles = wp_style_engine_get_styles( array( 'dimensions' => $dimensions_block_styles ) ); if ( ! empty( $styles['css'] ) ) { // Inject dimensions styles to the first element, presuming it's the wrapper, if it exists. $tags = new WP_HTML_Tag_Processor( $block_content ); if ( $tags->next_tag() ) { $existing_style = $tags->get_attribute( 'style' ); $updated_style = ''; if ( ! empty( $existing_style ) ) { $updated_style = $existing_style; if ( ! str_ends_with( $existing_style, ';' ) ) { $updated_style .= ';'; } } $updated_style .= $styles['css']; $tags->set_attribute( 'style', $updated_style ); if ( ! empty( $styles['classnames'] ) ) { foreach ( explode( ' ', $styles['classnames'] ) as $class_name ) { if ( str_contains( $class_name, 'aspect-ratio' ) && ! isset( $block_attributes['style']['dimensions']['aspectRatio'] ) ) { continue; } $tags->add_class( $class_name ); } } } return $tags->get_updated_html(); } return $block_content; } add_filter( 'render_block', 'wp_render_dimensions_support', 10, 2 ); // Register the block support. WP_Block_Supports::get_instance()->register( 'dimensions', array( 'register_attribute' => 'wp_register_dimensions_support', 'apply' => 'wp_apply_dimensions_support', ) ); PKN\M3 position.phpnu[attributes ) { $block_type->attributes = array(); } if ( $has_position_support && ! array_key_exists( 'style', $block_type->attributes ) ) { $block_type->attributes['style'] = array( 'type' => 'object', ); } } /** * Renders position styles to the block wrapper. * * @since 6.2.0 * @access private * * @param string $block_content Rendered block content. * @param array $block Block object. * @return string Filtered block content. */ function wp_render_position_support( $block_content, $block ) { $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] ); $has_position_support = block_has_support( $block_type, 'position', false ); if ( ! $has_position_support || empty( $block['attrs']['style']['position'] ) ) { return $block_content; } $global_settings = wp_get_global_settings(); $theme_has_sticky_support = $global_settings['position']['sticky'] ?? false; $theme_has_fixed_support = $global_settings['position']['fixed'] ?? false; // Only allow output for position types that the theme supports. $allowed_position_types = array(); if ( true === $theme_has_sticky_support ) { $allowed_position_types[] = 'sticky'; } if ( true === $theme_has_fixed_support ) { $allowed_position_types[] = 'fixed'; } $style_attribute = $block['attrs']['style'] ?? null; $class_name = wp_unique_id( 'wp-container-' ); $selector = ".$class_name"; $position_styles = array(); $position_type = $style_attribute['position']['type'] ?? ''; $wrapper_classes = array(); if ( in_array( $position_type, $allowed_position_types, true ) ) { $wrapper_classes[] = $class_name; $wrapper_classes[] = 'is-position-' . $position_type; $sides = array( 'top', 'right', 'bottom', 'left' ); foreach ( $sides as $side ) { $side_value = $style_attribute['position'][ $side ] ?? null; if ( null !== $side_value ) { /* * For fixed or sticky top positions, * ensure the value includes an offset for the logged in admin bar. */ if ( 'top' === $side && ( 'fixed' === $position_type || 'sticky' === $position_type ) ) { // Ensure 0 values can be used in `calc()` calculations. if ( '0' === $side_value || 0 === $side_value ) { $side_value = '0px'; } // Ensure current side value also factors in the height of the logged in admin bar. $side_value = "calc($side_value + var(--wp-admin--admin-bar--position-offset, 0px))"; } $position_styles[] = array( 'selector' => $selector, 'declarations' => array( $side => $side_value, ), ); } } $position_styles[] = array( 'selector' => $selector, 'declarations' => array( 'position' => $position_type, 'z-index' => '10', ), ); } if ( ! empty( $position_styles ) ) { /* * Add to the style engine store to enqueue and render position styles. */ wp_style_engine_get_stylesheet_from_css_rules( $position_styles, array( 'context' => 'block-supports', 'prettify' => false, ) ); // Inject class name to block container markup. $content = new WP_HTML_Tag_Processor( $block_content ); $content->next_tag(); foreach ( $wrapper_classes as $class ) { $content->add_class( $class ); } return (string) $content; } return $block_content; } // Register the block support. WP_Block_Supports::get_instance()->register( 'position', array( 'register_attribute' => 'wp_register_position_support', ) ); add_filter( 'render_block', 'wp_render_position_support', 10, 2 ); PKN\<11background.phpnu[attributes ) { $block_type->attributes = array(); } // Check for existing style attribute definition e.g. from block.json. if ( array_key_exists( 'style', $block_type->attributes ) ) { return; } $has_background_support = block_has_support( $block_type, array( 'background' ), false ); if ( $has_background_support ) { $block_type->attributes['style'] = array( 'type' => 'object', ); } } /** * Renders the background styles to the block wrapper. * This block support uses the `render_block` hook to ensure that * it is also applied to non-server-rendered blocks. * * @since 6.4.0 * @since 6.5.0 Added support for `backgroundPosition` and `backgroundRepeat` output. * @since 6.6.0 Removed requirement for `backgroundImage.source`. A file/url is the default. * @since 6.7.0 Added support for `backgroundAttachment` output. * * @access private * * @param string $block_content Rendered block content. * @param array $block Block object. * @return string Filtered block content. */ function wp_render_background_support( $block_content, $block ) { $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] ); $block_attributes = ( isset( $block['attrs'] ) && is_array( $block['attrs'] ) ) ? $block['attrs'] : array(); $has_background_image_support = block_has_support( $block_type, array( 'background', 'backgroundImage' ), false ); if ( ! $has_background_image_support || wp_should_skip_block_supports_serialization( $block_type, 'background', 'backgroundImage' ) || ! isset( $block_attributes['style']['background'] ) ) { return $block_content; } $background_styles = array(); $background_styles['backgroundImage'] = $block_attributes['style']['background']['backgroundImage'] ?? null; $background_styles['backgroundSize'] = $block_attributes['style']['background']['backgroundSize'] ?? null; $background_styles['backgroundPosition'] = $block_attributes['style']['background']['backgroundPosition'] ?? null; $background_styles['backgroundRepeat'] = $block_attributes['style']['background']['backgroundRepeat'] ?? null; $background_styles['backgroundAttachment'] = $block_attributes['style']['background']['backgroundAttachment'] ?? null; if ( ! empty( $background_styles['backgroundImage'] ) ) { $background_styles['backgroundSize'] = $background_styles['backgroundSize'] ?? 'cover'; // If the background size is set to `contain` and no position is set, set the position to `center`. if ( 'contain' === $background_styles['backgroundSize'] && ! $background_styles['backgroundPosition'] ) { $background_styles['backgroundPosition'] = '50% 50%'; } } $styles = wp_style_engine_get_styles( array( 'background' => $background_styles ) ); if ( ! empty( $styles['css'] ) ) { // Inject background styles to the first element, presuming it's the wrapper, if it exists. $tags = new WP_HTML_Tag_Processor( $block_content ); if ( $tags->next_tag() ) { $existing_style = $tags->get_attribute( 'style' ); if ( is_string( $existing_style ) && '' !== $existing_style ) { $separator = str_ends_with( $existing_style, ';' ) ? '' : ';'; $updated_style = "{$existing_style}{$separator}{$styles['css']}"; } else { $updated_style = $styles['css']; } $tags->set_attribute( 'style', $updated_style ); $tags->add_class( 'has-background' ); } return $tags->get_updated_html(); } return $block_content; } // Register the block support. WP_Block_Supports::get_instance()->register( 'background', array( 'register_attribute' => 'wp_register_background_support', ) ); add_filter( 'render_block', 'wp_render_background_support', 10, 2 ); PKN\R align.phpnu[attributes ) { $block_type->attributes = array(); } if ( ! array_key_exists( 'align', $block_type->attributes ) ) { $block_type->attributes['align'] = array( 'type' => 'string', 'enum' => array( 'left', 'center', 'right', 'wide', 'full', '' ), ); } } } /** * Adds CSS classes for block alignment to the incoming attributes array. * This will be applied to the block markup in the front-end. * * @since 5.6.0 * @access private * * @param WP_Block_Type $block_type Block Type. * @param array $block_attributes Block attributes. * @return array Block alignment CSS classes and inline styles. */ function wp_apply_alignment_support( $block_type, $block_attributes ) { $attributes = array(); $has_align_support = block_has_support( $block_type, 'align', false ); if ( $has_align_support ) { $has_block_alignment = array_key_exists( 'align', $block_attributes ); if ( $has_block_alignment ) { $attributes['class'] = sprintf( 'align%s', $block_attributes['align'] ); } } return $attributes; } // Register the block support. WP_Block_Supports::get_instance()->register( 'align', array( 'register_attribute' => 'wp_register_alignment_support', 'apply' => 'wp_apply_alignment_support', ) ); PKƑ\yz%z%custom-css.phpnu[get_registered( $parsed_block['blockName'] ); if ( ! block_has_support( $block_type, 'customCSS', true ) ) { return $parsed_block; } // Validate CSS doesn't contain HTML markup (same validation as global styles REST API). if ( preg_match( '#next_tag() ) { $tags->add_class( 'has-custom-css' ); $tags->add_class( $custom_class_name ); } return $tags->get_updated_html(); } add_filter( 'render_block', 'wp_render_custom_css_class_name', 10, 2 ); add_filter( 'render_block_data', 'wp_render_custom_css_support_styles', 10, 1 ); add_action( 'wp_enqueue_scripts', 'wp_enqueue_block_custom_css', 1 ); /** * Registers the style block attribute for block types that support it. * * @param WP_Block_Type $block_type Block Type. */ function wp_register_custom_css_support( $block_type ) { // Setup attributes and styles within that if needed. if ( ! $block_type->attributes ) { $block_type->attributes = array(); } // Check for existing style attribute definition e.g. from block.json. if ( array_key_exists( 'style', $block_type->attributes ) ) { return; } $has_custom_css_support = block_has_support( $block_type, array( 'customCSS' ), true ); if ( $has_custom_css_support ) { $block_type->attributes['style'] = array( 'type' => 'object', ); } } /** * Strips custom CSS (`style.css` in attributes) from all blocks in post content. * * Uses {@see WP_Block_Parser::next_token()} to scan block tokens and surgically * replace only the attribute JSON that changed — no parse_blocks() + * serialize_blocks() round-trip needed. * * @since 7.0.0 * @access private * * @param string $content Post content to filter, expected to be escaped with slashes. * @return string Filtered post content with block custom CSS removed. */ function wp_strip_custom_css_from_blocks( $content ) { if ( ! has_blocks( $content ) ) { return $content; } $unslashed = stripslashes( $content ); $parser = new WP_Block_Parser(); $parser->document = $unslashed; $parser->offset = 0; $end = strlen( $unslashed ); $replacements = array(); while ( $parser->offset < $end ) { $next_token = $parser->next_token(); if ( 'no-more-tokens' === $next_token[0] ) { break; } list( $token_type, , $attrs, $start_offset, $token_length ) = $next_token; $parser->offset = $start_offset + $token_length; if ( 'block-opener' !== $token_type && 'void-block' !== $token_type ) { continue; } if ( ! isset( $attrs['style']['css'] ) ) { continue; } // Remove css and clean up empty style. unset( $attrs['style']['css'] ); if ( empty( $attrs['style'] ) ) { unset( $attrs['style'] ); } // Locate the JSON portion within the token. $token_string = substr( $unslashed, $start_offset, $token_length ); $json_rel_start = strcspn( $token_string, '{' ); $json_rel_end = strrpos( $token_string, '}' ); $json_start = $start_offset + $json_rel_start; $json_length = $json_rel_end - $json_rel_start + 1; // Re-encode attributes. If attrs is now empty, remove JSON and trailing space. if ( empty( $attrs ) ) { // Remove the trailing space after JSON. $replacements[] = array( $json_start, $json_length + 1, '' ); } else { $replacements[] = array( $json_start, $json_length, serialize_block_attributes( $attrs ) ); } } if ( empty( $replacements ) ) { return $content; } // Build the result by splicing replacements into the original string. $result = ''; $was_at = 0; foreach ( $replacements as $replacement ) { list( $offset, $length, $new_json ) = $replacement; $result .= substr( $unslashed, $was_at, $offset - $was_at ) . $new_json; $was_at = $offset + $length; } if ( $was_at < $end ) { $result .= substr( $unslashed, $was_at ); } return addslashes( $result ); } /** * Adds the filters to strip custom CSS from block content on save. * Priority of 8 to run before wp_filter_global_styles_post (priority 9) and wp_filter_post_kses (priority 10). * * @since 7.0.0 * @access private */ function wp_custom_css_kses_init_filters() { add_filter( 'content_save_pre', 'wp_strip_custom_css_from_blocks', 8 ); add_filter( 'content_filtered_save_pre', 'wp_strip_custom_css_from_blocks', 8 ); } /** * Removes the filters that strip custom CSS from block content on save. * Priority of 8 to run before wp_filter_global_styles_post (priority 9) and wp_filter_post_kses (priority 10). * * @since 7.0.0 * @access private */ function wp_custom_css_remove_filters() { remove_filter( 'content_save_pre', 'wp_strip_custom_css_from_blocks', 8 ); remove_filter( 'content_filtered_save_pre', 'wp_strip_custom_css_from_blocks', 8 ); } /** * Registers the custom CSS content filters if the user does not have the edit_css capability. * * @since 7.0.0 * @access private */ function wp_custom_css_kses_init() { wp_custom_css_remove_filters(); if ( ! current_user_can( 'edit_css' ) ) { wp_custom_css_kses_init_filters(); } } /** * Initializes custom CSS content filters when imported data should be filtered. * * Runs at priority 999 on {@see 'force_filtered_html_on_import'} to ensure it * fires after general KSES initialization, independently of user capabilities. * If the input of the filter is true it means we are in an import situation and should * enable the custom CSS filters, independently of the user capabilities. * * @since 7.0.0 * @access private * * @param mixed $arg Input argument of the filter. * @return mixed Input argument of the filter. */ function wp_custom_css_force_filtered_html_on_import_filter( $arg ) { if ( $arg ) { wp_custom_css_kses_init_filters(); } return $arg; } // Run before wp_filter_global_styles_post (priority 9) and wp_filter_post_kses (priority 10). add_action( 'init', 'wp_custom_css_kses_init', 20 ); add_action( 'set_current_user', 'wp_custom_css_kses_init' ); add_filter( 'force_filtered_html_on_import', 'wp_custom_css_force_filtered_html_on_import_filter', 999 ); // Register the block support. WP_Block_Supports::get_instance()->register( 'custom-css', array( 'register_attribute' => 'wp_register_custom_css_support', ) ); PKȑ\?u&& anchor.phpnu[attributes ) ) { $block_type->attributes = array(); } if ( ! array_key_exists( 'anchor', $block_type->attributes ) ) { $block_type->attributes['anchor'] = array( 'type' => 'string', ); } } /** * Add the anchor id to the output. * * @since 7.0.0 * @access private * * @param WP_Block_Type $block_type Block Type. * @param array $block_attributes Block attributes. * @return array Attributes with block anchor id. */ function wp_apply_anchor_support( WP_Block_Type $block_type, array $block_attributes ): array { if ( empty( $block_attributes ) ) { return array(); } if ( ! block_has_support( $block_type, array( 'anchor' ) ) ) { return array(); } if ( ! isset( $block_attributes['anchor'] ) || ! is_string( $block_attributes['anchor'] ) || '' === $block_attributes['anchor'] ) { return array(); } return array( 'id' => $block_attributes['anchor'] ); } // Register the block support. WP_Block_Supports::get_instance()->register( 'anchor', array( 'register_attribute' => 'wp_register_anchor_support', 'apply' => 'wp_apply_anchor_support', ) ); PKʑ\} auto-register.phpnu[ $args Array of arguments for registering a block type. * @return array Modified block type arguments. */ function wp_mark_auto_generate_control_attributes( array $args ): array { if ( empty( $args['attributes'] ) || ! is_array( $args['attributes'] ) ) { return $args; } $has_auto_register = ! empty( $args['supports']['autoRegister'] ); if ( ! $has_auto_register ) { return $args; } foreach ( $args['attributes'] as $attr_key => $attr_schema ) { // Skip HTML-derived attributes (edited inline, not via inspector). if ( ! empty( $attr_schema['source'] ) ) { continue; } // Skip internal attributes (not user-configurable). if ( isset( $attr_schema['role'] ) && 'local' === $attr_schema['role'] ) { continue; } // Skip unsupported types (only 'string', 'number', 'integer', 'boolean' are supported). $type = $attr_schema['type'] ?? null; if ( ! in_array( $type, array( 'string', 'number', 'integer', 'boolean' ), true ) ) { continue; } $args['attributes'][ $attr_key ]['autoGenerateControl'] = true; } return $args; } // Priority 5 to mark original attributes before other filters (priority 10+) might add their own. add_filter( 'register_block_type_args', 'wp_mark_auto_generate_control_attributes', 5 ); PKN\F duotone.phpnu[PKN\